lazylead 0.8.1 → 0.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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