lazylead 0.8.1 → 0.8.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 87d2b34214d533e7ffe2c819c2655d5cc7b273e68b8791641b4462c655d14216
4
- data.tar.gz: 86cf9712d1a6a1992c9414c4578b2c4e6ae7806f378f42e2c37e38508ad6448d
3
+ metadata.gz: fde968b00a6b6868ea644d731c54d23d08f365b133926fa2cf13699e982a0802
4
+ data.tar.gz: 3340adabd89a6699cf0ba2fdc723ccc9e372d505b8b14b81cd7eef6c816c7fdc
5
5
  SHA512:
6
- metadata.gz: d0c5f522f77a818edc4bcd8b571ce359b9e10f45df809ef6a17a5154fdda8eccb4104ee08d2ce69049f93f76b5ee0506003fad3faffeea59a3df61ad93f77f9e
7
- data.tar.gz: d3b52a77f6346e88b87dca54a6827c69557968b18770305578ff78d3436be5c6484176d531175ea1860b1460df1ad33933e8454e692c6544f3f018dc49881e44
6
+ metadata.gz: ecbf953aa53ae51b6ed4cc056794f3b8eb9e693d07cc3262070a95592546f9d45797f4ebdf4bbbacc650ad369033e9fd433e6d1975fd3f37688f5c7c3c321ee9
7
+ data.tar.gz: f2dae8c55b5b98ddca9fe769a007eb4ea40d6c2b52675fa47911bc924d9ad7b56453f1a4c3705275f2ba2840d9d662ffde58bd92c179ea2af5a2da5baf1b3156
data/.rubocop.yml CHANGED
@@ -3,6 +3,7 @@ require:
3
3
  - rubocop-performance
4
4
 
5
5
  AllCops:
6
+ NewCops: enable
6
7
  DisplayCopNames: true
7
8
  DisplayStyleGuide: true
8
9
  TargetRubyVersion: 2.6
data/lazylead.gemspec CHANGED
@@ -32,7 +32,7 @@ Gem::Specification.new do |s|
32
32
  s.rubygems_version = "2.2"
33
33
  s.required_ruby_version = ">=2.6.5"
34
34
  s.name = "lazylead"
35
- s.version = "0.8.1"
35
+ s.version = "0.8.2"
36
36
  s.license = "MIT"
37
37
  s.summary = "Eliminate the annoying work within bug-trackers."
38
38
  s.description = "Ticketing systems (Github, Jira, etc.) are strongly
@@ -45,7 +45,7 @@ tasks instead of solving technical problems."
45
45
  s.authors = ["Yurii Dubinka"]
46
46
  s.email = "yurii.dubinka@gmail.com"
47
47
  s.homepage = "http://github.com/dgroup/lazylead"
48
- s.post_install_message = "Thanks for installing Lazylead v0.8.1!
48
+ s.post_install_message = "Thanks for installing Lazylead v0.8.2!
49
49
  Read our blog posts: https://lazylead.org
50
50
  Stay in touch with the community in Telegram: https://t.me/lazylead
51
51
  Follow us on Twitter: https://twitter.com/lazylead
@@ -69,6 +69,7 @@ tasks instead of solving technical problems."
69
69
  s.add_runtime_dependency "openssl", "2.1.2"
70
70
  s.add_runtime_dependency "railties", "6.1.3"
71
71
  s.add_runtime_dependency "require_all", "3.0.0"
72
+ s.add_runtime_dependency "rubyzip", "2.3.0"
72
73
  s.add_runtime_dependency "rufus-scheduler", "3.7.0"
73
74
  s.add_runtime_dependency "slop", "4.8.2"
74
75
  s.add_runtime_dependency "sqlite3", "1.4.2"
@@ -89,12 +90,12 @@ tasks instead of solving technical problems."
89
90
  s.add_development_dependency "rake", "13.0.3"
90
91
  s.add_development_dependency "random-port", "0.5.1"
91
92
  s.add_development_dependency "rdoc", "6.3.0"
92
- s.add_development_dependency "rubocop", "1.11.0"
93
- s.add_development_dependency "rubocop-minitest", "0.10.3"
94
- s.add_development_dependency "rubocop-performance", "1.10.1"
93
+ s.add_development_dependency "rubocop", "1.12.0"
94
+ s.add_development_dependency "rubocop-minitest", "0.11.0"
95
+ s.add_development_dependency "rubocop-performance", "1.10.2"
95
96
  s.add_development_dependency "rubocop-rake", "0.5.1"
96
97
  s.add_development_dependency "rubocop-rspec", "2.2.0"
97
- s.add_development_dependency "sqlint", "0.1.10"
98
+ s.add_development_dependency "sqlint", "0.2.0"
98
99
  s.add_development_dependency "tempfile", "0.1.1"
99
100
  s.add_development_dependency "xcop", "0.6.2"
100
101
  end
data/lib/lazylead/cc.rb CHANGED
@@ -80,13 +80,11 @@ module Lazylead
80
80
  end
81
81
 
82
82
  def cc
83
- @cc ||= begin
84
- if @text.include? ","
85
- @text.split(",").map(&:strip).select { |e| e[@regxp] }
86
- elsif @text[@regxp]
87
- [@text.strip]
88
- end
89
- end
83
+ @cc ||= if @text.include? ","
84
+ @text.split(",").map(&:strip).select { |e| e[@regxp] }
85
+ elsif @text[@regxp]
86
+ [@text.strip]
87
+ end
90
88
  end
91
89
 
92
90
  def each(&block)
@@ -125,15 +123,13 @@ module Lazylead
125
123
  end
126
124
 
127
125
  def to_h
128
- @to_h ||= begin
129
- if @orig.is_a? Hash
130
- @orig.each_with_object({}) do |i, o|
131
- o[i.first] = Lazylead::PlainCC.new(i.last).cc
132
- end
133
- else
134
- {}
135
- end
136
- end
126
+ @to_h ||= if @orig.is_a? Hash
127
+ @orig.each_with_object({}) do |i, o|
128
+ o[i.first] = Lazylead::PlainCC.new(i.last).cc
129
+ end
130
+ else
131
+ {}
132
+ end
137
133
  end
138
134
  end
139
135
 
@@ -151,12 +147,10 @@ module Lazylead
151
147
  end
152
148
 
153
149
  def to_h
154
- @to_h ||= begin
155
- components.each_with_object({}) do |c, h|
156
- email = lead(c.attrs["id"])
157
- next if email.nil? || email.blank?
158
- h[c.attrs["name"]] = email
159
- end
150
+ @to_h ||= components.each_with_object({}) do |c, h|
151
+ email = lead(c.attrs["id"])
152
+ next if email.nil? || email.blank?
153
+ h[c.attrs["name"]] = email
160
154
  end
161
155
  end
162
156
 
@@ -135,13 +135,11 @@ module Lazylead
135
135
  end
136
136
 
137
137
  def props
138
- @props ||= begin
139
- if team.nil?
140
- Opts.new(env(to_hash))
141
- else
142
- Opts.new(env(team.to_hash.merge(to_hash)))
143
- end
144
- end
138
+ @props ||= if team.nil?
139
+ Opts.new(env(to_hash))
140
+ else
141
+ Opts.new(env(team.to_hash.merge(to_hash)))
142
+ end
145
143
  end
146
144
 
147
145
  def postman
@@ -26,6 +26,7 @@ require "jira-ruby"
26
26
  require "forwardable"
27
27
  require_relative "../salt"
28
28
  require_relative "../opts"
29
+ require_relative "../log"
29
30
 
30
31
  module Lazylead
31
32
  # Jira system for manipulation with issues.
@@ -118,13 +118,11 @@ module Lazylead
118
118
  end
119
119
 
120
120
  def colors
121
- @colors ||= begin
122
- JSON.parse(@opts["colors"])
123
- .to_h
124
- .to_a
125
- .each { |e| e[0] = e[0].to_i }
126
- .sort_by { |e| e[0] }
127
- end
121
+ @colors ||= JSON.parse(@opts["colors"])
122
+ .to_h
123
+ .to_a
124
+ .each { |e| e[0] = e[0].to_i }
125
+ .sort_by { |e| e[0] }
128
126
  end
129
127
 
130
128
  # Calculate grade for accuracy
@@ -94,13 +94,11 @@ module Lazylead
94
94
 
95
95
  # Detect the percentage grid for tickets, by default its 0%, 10%, 20%, etc.
96
96
  def grid
97
- @grid ||= begin
98
- if @opts.key? "grid"
99
- @opts.slice("grid", ",")
100
- else
101
- %w[0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%]
102
- end
103
- end
97
+ @grid ||= if @opts.key? "grid"
98
+ @opts.slice("grid", ",")
99
+ else
100
+ %w[0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100%]
101
+ end
104
102
  end
105
103
 
106
104
  # Remove score labels from the ticket.
@@ -22,12 +22,30 @@
22
22
  # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
23
23
  # OR OTHER DEALINGS IN THE SOFTWARE.
24
24
 
25
- # Guardfile for Lazylead
26
- guard :minitest, all_after_pass: false, all_on_start: false do
27
- # with Minitest::Unit
28
- watch(%r{^test/(.*)/?test_(.*)\.rb$})
29
- watch(%r{^test/test\.rb$}) { "test" }
30
- watch(%r{^lib/lazylead/(.*/)?([^/]+)\.rb$}) do |m|
31
- "test/#{m[1]}test_#{m[2]}.rb"
25
+ require_relative "requirement"
26
+
27
+ module Lazylead
28
+ #
29
+ # Check that ticket has screenshot(s).
30
+ # The screenshots should
31
+ # 1. present as attachments
32
+ # 2. mentioned in description with !<name>.<extension>|thumbnail! (read more https://bit.ly/3rusNgW)
33
+ #
34
+ class Screenshots < Lazylead::Requirement
35
+ # @param minimum The number of expected screenshots
36
+ def initialize(minimum: 2, score: 2, ext: %w[.jpg .jpeg .exif .tiff .tff .bmp .png .svg])
37
+ super "Screenshots", score, "Description,Attachments"
38
+ @minimum = minimum
39
+ @ext = ext
40
+ end
41
+
42
+ def passed(issue)
43
+ return false if issue.attachments.nil? || blank?(issue, "description")
44
+ regexps = issue.attachments
45
+ .select { |a| @ext.include? File.extname(a.filename) }
46
+ .map { |a| /!#{a.filename}\|thumbnail!/ }
47
+ return false if regexps.size < @minimum
48
+ regexps.all? { |r| issue.description.match? r }
49
+ end
32
50
  end
33
51
  end
@@ -22,6 +22,7 @@
22
22
  # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
23
23
  # OR OTHER DEALINGS IN THE SOFTWARE.
24
24
 
25
+ require "zip"
25
26
  require "tempfile"
26
27
  require "nokogiri"
27
28
  require "backtrace"
@@ -58,19 +59,40 @@ module Lazylead
58
59
  def send_email(postman, opts)
59
60
  Dir.mktmpdir do |dir|
60
61
  name = "svn-log-#{Date.today.strftime('%d-%b-%Y')}.html"
61
- f = File.open(File.join(dir, name), "w")
62
62
  begin
63
- f.write opts.msg_body("template-attachment")
64
- f.close
65
- postman.send opts.merge(attachments: [f.path])
63
+ to_f(File.join(dir, name), opts)
64
+ postman.send opts.merge(attachments: [File.join(dir, name)])
66
65
  ensure
67
- File.delete(f)
66
+ FileUtils.rm_rf("#{dir}/*")
68
67
  end
69
68
  rescue StandardError => e
70
69
  @log.error "ll-010: Can't send an email '#{opts['subject']}' to #{opts['to']} due to " \
71
70
  "#{Backtrace.new(e)}'"
72
71
  end
73
72
  end
73
+
74
+ # Wrap attachment content to a *.zip file and archive.
75
+ # to_f('my-content.html', opts) => my-content.html.zip
76
+ #
77
+ # You may disable archiving option by passing option *no_archive*
78
+ # to_f('my-content.html', "no_archive" => true)
79
+ def to_f(path, opts)
80
+ if opts.key? "no_archive"
81
+ f = File.open(path, "w")
82
+ body = opts.msg_body("template-attachment")
83
+ else
84
+ f = File.new("#{path}.zip", "wb")
85
+ bytes = Zip::OutputStream.write_buffer do |zio|
86
+ zio.put_next_entry(File.basename(path))
87
+ zio.write opts.msg_body("template-attachment")
88
+ end
89
+ bytes.rewind # reposition buffer pointer to the beginning
90
+ body = bytes.sysread
91
+ end
92
+ f.write body
93
+ f.close
94
+ f
95
+ end
74
96
  end
75
97
  end
76
98
  end
@@ -23,5 +23,5 @@
23
23
  # OR OTHER DEALINGS IN THE SOFTWARE.
24
24
 
25
25
  module Lazylead
26
- VERSION = "0.8.1"
26
+ VERSION = "0.8.2"
27
27
  end
@@ -0,0 +1,84 @@
1
+ # frozen_string_literal: true
2
+
3
+ # The MIT License
4
+ #
5
+ # Copyright (c) 2019-2021 Yurii Dubinka
6
+ #
7
+ # Permission is hereby granted, free of charge, to any person obtaining a copy
8
+ # of this software and associated documentation files (the "Software"),
9
+ # to deal in the Software without restriction, including without limitation
10
+ # the rights to use, copy, modify, merge, publish, distribute, sublicense,
11
+ # and/or sell copies of the Software, and to permit persons to whom
12
+ # the Software is furnished to do so, subject to the following conditions:
13
+ #
14
+ # The above copyright notice and this permission notice shall be included
15
+ # in all copies or substantial portions of the Software.
16
+ #
17
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18
+ # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19
+ # FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
20
+ # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21
+ # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
22
+ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE
23
+ # OR OTHER DEALINGS IN THE SOFTWARE.
24
+
25
+ require_relative "../../../test"
26
+ require_relative "../../../../lib/lazylead/task/accuracy/screenshots"
27
+ require_relative "../../../../lib/lazylead/system/jira"
28
+
29
+ module Lazylead
30
+ class ScreenshotsTest < Lazylead::Test
31
+ test "issue has two .png files with reference in description" do
32
+ assert Screenshots.new.passed(
33
+ OpenStruct.new(
34
+ description: "Hi,\n here are snapshots !img1.jpg|thumbnail!\n!img2.jpg|thumbnail!\n",
35
+ fields: {
36
+ "description" => "Hi,\n here are snapshots !img1.jpg|thumbnail!\n!img2.jpg|thumbnail!\n"
37
+ },
38
+ attachments: [
39
+ OpenStruct.new("filename" => "img1.jpg"),
40
+ OpenStruct.new("filename" => "img2.jpg")
41
+ ]
42
+ )
43
+ )
44
+ end
45
+
46
+ test "issue has several .png attachments mentioned using !xxx|thumbnail! option" do
47
+ assert Screenshots.new.passed(
48
+ NoAuthJira.new("https://jira.spring.io")
49
+ .issues("key=SPR-15729", fields: %w[attachment description])
50
+ .first
51
+ )
52
+ end
53
+
54
+ test "issue has only one .png file however minimum 2 are required" do
55
+ refute Screenshots.new.passed(
56
+ OpenStruct.new(
57
+ description: "Hi,\n here are snapshots !img1.jpg|thumbnail!\n",
58
+ fields: {
59
+ "description" => "Hi,\n here are snapshots !img1.jpg|thumbnail!\n"
60
+ },
61
+ attachments: [
62
+ OpenStruct.new("filename" => "img1.jpg"),
63
+ OpenStruct.new("filename" => "img2.jpg")
64
+ ]
65
+ )
66
+ )
67
+ end
68
+
69
+ test "issue has two .png files with reference in description but with extension mismatch" do
70
+ refute Screenshots.new.passed(
71
+ OpenStruct.new(
72
+ description: "Hi,\n here are snapshots !img1.jpg|thumbnail!\n!img2.jpg|thumbnail!\n",
73
+ fields: {
74
+ "description" => "Hi,\n here are snapshots !img1.jpg|thumbnail!\n!img2.jpg|thumbnail!\n"
75
+ },
76
+ attachments: [
77
+ OpenStruct.new("filename" => "img1.JPG"),
78
+ OpenStruct.new("filename" => "img2.jpg")
79
+ ]
80
+ )
81
+ )
82
+ end
83
+ end
84
+ end
@@ -31,6 +31,10 @@ require_relative "../../../../lib/lazylead/task/svn/diff"
31
31
 
32
32
  module Lazylead
33
33
  class DiffTest < Lazylead::Test
34
+ # @todo #/DEV Right now its impossible to check that attachment is present in email as we
35
+ # removing the directory with attachments once SVN::Diff is sent the email through the postman.
36
+ # Think about how to test this case in automatically, because for now we are doing it manually
37
+ # during the development.
34
38
  test "changes since revision" do
35
39
  skip "No svn credentials provided" unless env? "svn_log_user",
36
40
  "svn_log_password"
@@ -53,8 +57,8 @@ module Lazylead
53
57
  "template-attachment" => "lib/messages/svn_diff_attachment.erb"
54
58
  )
55
59
  )
56
- assert_email_line "[SVN] Changed since rev1",
57
- %w[r2 by dgroup at 2020-08-16]
60
+ assert_email_line "[SVN] Changed since rev1", %w[r2 by dgroup at 2020-08-16]
61
+ # assert_attachment "[SVN] Changed since rev1", /^.*svn-log-.*.html.zip$/
58
62
  end
59
63
 
60
64
  test "changes since revision with attachment" do
@@ -68,7 +72,7 @@ module Lazylead
68
72
  "LL_SMTP_TO",
69
73
  "LL_SMTP_FROM"
70
74
  Lazylead::Smtp.new(
71
- Log.new,
75
+ Log.new.verbose,
72
76
  NoSalt.new,
73
77
  smtp_host: ENV["LL_SMTP_HOST"],
74
78
  smtp_port: ENV["LL_SMTP_PORT"],
data/test/test.rb CHANGED
@@ -126,6 +126,18 @@ module Lazylead
126
126
  "Words '#{words.join(',')}' wasn't found in '#{mail.join('\n')}'"
127
127
  end
128
128
 
129
+ def assert_attachment(subject, regexp)
130
+ parts = Mail::TestMailer.deliveries
131
+ .find { |m| m.subject.eql? subject }
132
+ .body.parts.parts
133
+ .select do |p|
134
+ p.header.fields.any? { |f| f.value.start_with? "attachment" }
135
+ end
136
+ refute_empty parts, "No attachments found within the email"
137
+ assert parts.first.header.fields.any? { |f| f.value.match regexp },
138
+ "No attachments found matches to '#{regexp}' in #{subject}"
139
+ end
140
+
129
141
  # Ping remote host
130
142
  # https://github.com/eitoball/net-ping
131
143
  # https://stackoverflow.com/a/35508446/6916890
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lazylead
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.8.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yurii Dubinka
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-03-14 00:00:00.000000000 Z
11
+ date: 2021-03-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -206,6 +206,20 @@ dependencies:
206
206
  - - '='
207
207
  - !ruby/object:Gem::Version
208
208
  version: 3.0.0
209
+ - !ruby/object:Gem::Dependency
210
+ name: rubyzip
211
+ requirement: !ruby/object:Gem::Requirement
212
+ requirements:
213
+ - - '='
214
+ - !ruby/object:Gem::Version
215
+ version: 2.3.0
216
+ type: :runtime
217
+ prerelease: false
218
+ version_requirements: !ruby/object:Gem::Requirement
219
+ requirements:
220
+ - - '='
221
+ - !ruby/object:Gem::Version
222
+ version: 2.3.0
209
223
  - !ruby/object:Gem::Dependency
210
224
  name: rufus-scheduler
211
225
  requirement: !ruby/object:Gem::Requirement
@@ -492,42 +506,42 @@ dependencies:
492
506
  requirements:
493
507
  - - '='
494
508
  - !ruby/object:Gem::Version
495
- version: 1.11.0
509
+ version: 1.12.0
496
510
  type: :development
497
511
  prerelease: false
498
512
  version_requirements: !ruby/object:Gem::Requirement
499
513
  requirements:
500
514
  - - '='
501
515
  - !ruby/object:Gem::Version
502
- version: 1.11.0
516
+ version: 1.12.0
503
517
  - !ruby/object:Gem::Dependency
504
518
  name: rubocop-minitest
505
519
  requirement: !ruby/object:Gem::Requirement
506
520
  requirements:
507
521
  - - '='
508
522
  - !ruby/object:Gem::Version
509
- version: 0.10.3
523
+ version: 0.11.0
510
524
  type: :development
511
525
  prerelease: false
512
526
  version_requirements: !ruby/object:Gem::Requirement
513
527
  requirements:
514
528
  - - '='
515
529
  - !ruby/object:Gem::Version
516
- version: 0.10.3
530
+ version: 0.11.0
517
531
  - !ruby/object:Gem::Dependency
518
532
  name: rubocop-performance
519
533
  requirement: !ruby/object:Gem::Requirement
520
534
  requirements:
521
535
  - - '='
522
536
  - !ruby/object:Gem::Version
523
- version: 1.10.1
537
+ version: 1.10.2
524
538
  type: :development
525
539
  prerelease: false
526
540
  version_requirements: !ruby/object:Gem::Requirement
527
541
  requirements:
528
542
  - - '='
529
543
  - !ruby/object:Gem::Version
530
- version: 1.10.1
544
+ version: 1.10.2
531
545
  - !ruby/object:Gem::Dependency
532
546
  name: rubocop-rake
533
547
  requirement: !ruby/object:Gem::Requirement
@@ -562,14 +576,14 @@ dependencies:
562
576
  requirements:
563
577
  - - '='
564
578
  - !ruby/object:Gem::Version
565
- version: 0.1.10
579
+ version: 0.2.0
566
580
  type: :development
567
581
  prerelease: false
568
582
  version_requirements: !ruby/object:Gem::Requirement
569
583
  requirements:
570
584
  - - '='
571
585
  - !ruby/object:Gem::Version
572
- version: 0.1.10
586
+ version: 0.2.0
573
587
  - !ruby/object:Gem::Dependency
574
588
  name: tempfile
575
589
  requirement: !ruby/object:Gem::Requirement
@@ -648,7 +662,6 @@ files:
648
662
  - ".simplecov"
649
663
  - CNAME
650
664
  - Gemfile
651
- - Guardfile
652
665
  - Rakefile
653
666
  - appveyor.yml
654
667
  - bin/.ruby-version
@@ -683,6 +696,7 @@ files:
683
696
  - lib/lazylead/task/accuracy/onlyll.rb
684
697
  - lib/lazylead/task/accuracy/records.rb
685
698
  - lib/lazylead/task/accuracy/requirement.rb
699
+ - lib/lazylead/task/accuracy/screenshots.rb
686
700
  - lib/lazylead/task/accuracy/servers.rb
687
701
  - lib/lazylead/task/accuracy/stacktrace.rb
688
702
  - lib/lazylead/task/accuracy/testcase.rb
@@ -738,6 +752,7 @@ files:
738
752
  - test/lazylead/task/accuracy/onlyll_test.rb
739
753
  - test/lazylead/task/accuracy/records_test.rb
740
754
  - test/lazylead/task/accuracy/score_test.rb
755
+ - test/lazylead/task/accuracy/screenshots_test.rb
741
756
  - test/lazylead/task/accuracy/servers_test.rb
742
757
  - test/lazylead/task/accuracy/stacktrace_test.rb
743
758
  - test/lazylead/task/accuracy/testcase_test.rb
@@ -768,7 +783,7 @@ licenses:
768
783
  - MIT
769
784
  metadata: {}
770
785
  post_install_message: |-
771
- Thanks for installing Lazylead v0.8.1!
786
+ Thanks for installing Lazylead v0.8.2!
772
787
  Read our blog posts: https://lazylead.org
773
788
  Stay in touch with the community in Telegram: https://t.me/lazylead
774
789
  Follow us on Twitter: https://twitter.com/lazylead
@@ -813,6 +828,7 @@ test_files:
813
828
  - test/lazylead/task/accuracy/onlyll_test.rb
814
829
  - test/lazylead/task/accuracy/records_test.rb
815
830
  - test/lazylead/task/accuracy/score_test.rb
831
+ - test/lazylead/task/accuracy/screenshots_test.rb
816
832
  - test/lazylead/task/accuracy/servers_test.rb
817
833
  - test/lazylead/task/accuracy/stacktrace_test.rb
818
834
  - test/lazylead/task/accuracy/testcase_test.rb