lazylead 0.10.1 → 0.10.5

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: ddf0f9e22eff50a83a0161cc969c6397c326d88a21dcc0a191634645a22bff67
4
- data.tar.gz: ed262c75c351a8bdfc317123b04de69c854af92fe79234b01e85c3664e16a576
3
+ metadata.gz: ef86e7fdc0c41c8f9d7220a580e6afd1c7f9e09e396c14142df99a407eec0d1c
4
+ data.tar.gz: aa452077f1e99ac82c6add4b7dd9ac057d0715f1feea02ed2d6d6e744e322991
5
5
  SHA512:
6
- metadata.gz: dc478328e0831adf45af81deaf82427e6f279607d3547fafe5c9593707eb3d39642426fc5f0239a0147fd0d007931e2712337a73da49dd33e6e423c16b947f9c
7
- data.tar.gz: 930bb2edee338509549c3afe7d9d0dcea5f5391e7f5f6b6bf9cdfc9f2263cb723efedc0596df4e33babdf9d4c02af1401442dfa1ab7f5ffac6b13dccfb2b160b
6
+ metadata.gz: 58f54eb88f268b67c48ac5867502637767fb0cb27cbfaf0b6b3edd0b0119774c0fde9d78408b4e81243b279eec1fc9a18c970dfd37bc344f0654fd653ed59709
7
+ data.tar.gz: 131a15331350d5869187b2e8f8546715434138fc66b0d711a6a882a5292bc5937ac44e060f2a6a233dcbd098cef8e568af592ecd85d0c1b8c3f4965ddd8ac9c4
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.10.1"
35
+ s.version = "0.10.5"
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.10.1!
48
+ s.post_install_message = "Thanks for installing Lazylead v0.10.5!
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
@@ -58,7 +58,7 @@ tasks instead of solving technical problems."
58
58
  s.add_runtime_dependency "activerecord", "6.1.3"
59
59
  s.add_runtime_dependency "backtrace", "0.3"
60
60
  s.add_runtime_dependency "colorize", "0.8.1"
61
- s.add_runtime_dependency "faraday", "1.5.1"
61
+ s.add_runtime_dependency "faraday", "1.7.0"
62
62
  s.add_runtime_dependency "get_process_mem", "0.2.7"
63
63
  s.add_runtime_dependency "inifile", "3.0.0"
64
64
  s.add_runtime_dependency "jira-ruby", "2.1.5"
@@ -66,11 +66,12 @@ tasks instead of solving technical problems."
66
66
  s.add_runtime_dependency "logging", "2.3.0"
67
67
  s.add_runtime_dependency "mail", "2.7.1"
68
68
  s.add_runtime_dependency "memory_profiler", "1.0.0"
69
+ s.add_runtime_dependency "nokogiri", "1.11.3"
69
70
  s.add_runtime_dependency "openssl", "2.1.2"
70
71
  s.add_runtime_dependency "railties", "6.1.3"
71
72
  s.add_runtime_dependency "require_all", "3.0.0"
72
73
  s.add_runtime_dependency "rubyzip", "2.3.2"
73
- s.add_runtime_dependency "rufus-scheduler", "3.7.0"
74
+ s.add_runtime_dependency "rufus-scheduler", "3.8.0"
74
75
  s.add_runtime_dependency "slop", "4.9.1"
75
76
  s.add_runtime_dependency "sqlite3", "1.4.2"
76
77
  s.add_runtime_dependency "tempfile", "0.1.1"
@@ -80,7 +81,7 @@ tasks instead of solving technical problems."
80
81
  s.add_runtime_dependency "vcs4sql", "0.1.1"
81
82
  s.add_runtime_dependency "viewpoint", "1.1.1"
82
83
  s.add_development_dependency "codecov", "0.5.2"
83
- s.add_development_dependency "guard", "2.17.0"
84
+ s.add_development_dependency "guard", "2.18.0"
84
85
  s.add_development_dependency "guard-minitest", "2.4.6"
85
86
  s.add_development_dependency "minitest", "5.14.4"
86
87
  s.add_development_dependency "minitest-fail-fast", "0.1.0"
@@ -90,8 +91,8 @@ tasks instead of solving technical problems."
90
91
  s.add_development_dependency "rake", "13.0.6"
91
92
  s.add_development_dependency "random-port", "0.5.1"
92
93
  s.add_development_dependency "rdoc", "6.3.2"
93
- s.add_development_dependency "rubocop", "1.18.3"
94
- s.add_development_dependency "rubocop-minitest", "0.14.0"
94
+ s.add_development_dependency "rubocop", "1.19.0"
95
+ s.add_development_dependency "rubocop-minitest", "0.15.0"
95
96
  s.add_development_dependency "rubocop-performance", "1.11.4"
96
97
  s.add_development_dependency "rubocop-rake", "0.6.0"
97
98
  s.add_development_dependency "rubocop-rspec", "2.4.0"
@@ -47,7 +47,11 @@ module Lazylead
47
47
  raise "ll-002: task can't be a null" if task.nil?
48
48
  @trigger.method(task.type).call(task.unit) do
49
49
  ActiveRecord::Base.connection_pool.with_connection do
50
- ORM::VerboseTask.new(task, @log).exec
50
+ if task.props.key? "no_logs"
51
+ task.exec
52
+ else
53
+ ORM::VerboseTask.new(task, @log).exec
54
+ end
51
55
  end
52
56
  end
53
57
  @log.debug "Task scheduled: #{task}"
@@ -0,0 +1,48 @@
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 "requirement"
26
+
27
+ module Lazylead
28
+ # Check that ticket has specified label.
29
+ class HasLabel < Lazylead::Requirement
30
+ #
31
+ # @param label which should be present in ticket.
32
+ #
33
+ def initialize(label, desc: "Has label", score: 0.5)
34
+ super(desc, score, "Labels")
35
+ @label = label
36
+ end
37
+
38
+ def passed(issue)
39
+ return false if issue.labels.empty?
40
+ issue.labels.any? { |l| match?(l) }
41
+ end
42
+
43
+ # Ensure that particular label matches expected label.
44
+ def match?(label)
45
+ @label.eql? label
46
+ end
47
+ end
48
+ end
@@ -30,11 +30,12 @@ module Lazylead
30
30
  # or attachment with plain log file
31
31
  class LogsLink < Lazylead::Logs
32
32
  def initialize(link)
33
- super
33
+ super()
34
34
  @link = link
35
35
  end
36
36
 
37
37
  def passed(issue)
38
+ return false if @link.nil? || (@link.is_a?(Array) && @link.empty?)
38
39
  super(issue) || link?(issue)
39
40
  end
40
41
 
@@ -46,7 +47,9 @@ module Lazylead
46
47
  .reject(&:blank?)
47
48
  .flat_map(&:split)
48
49
  .reject(&:blank?)
49
- .any? { |word| word.start_with? @link }
50
+ .any? do |word|
51
+ @link.is_a?(Array) ? @link.any? { |l| word.include? l } : word.include?(@link)
52
+ end
50
53
  end
51
54
  end
52
55
  end
@@ -0,0 +1,49 @@
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 "records"
26
+
27
+ module Lazylead
28
+ # Check that ticket has links to video record(s) with reproducing results.
29
+ class RecordsLink < Lazylead::Records
30
+ def initialize(*urls)
31
+ super([])
32
+ @urls = urls
33
+ end
34
+
35
+ def passed(issue)
36
+ link?(issue) || super(issue)
37
+ end
38
+
39
+ def link?(issue)
40
+ return false if issue.description.nil?
41
+ issue.description
42
+ .split("\n")
43
+ .reject(&:blank?)
44
+ .flat_map(&:split)
45
+ .reject(&:blank?)
46
+ .any? { |word| @urls.any? { |u| word.start_with? u } }
47
+ end
48
+ end
49
+ end
@@ -36,8 +36,7 @@ module Lazylead
36
36
 
37
37
  def passed(issue)
38
38
  return false if @fields.nil? || @fields.empty?
39
- return true if @fields.all? { |f| non_blank?(issue, f) }
40
- false
39
+ @fields.all? { |f| non_blank?(issue, f) }
41
40
  end
42
41
  end
43
42
  end
@@ -56,9 +56,9 @@ module Lazylead
56
56
 
57
57
  # Detect all pictures in ticket attachments and returns an array with file names.
58
58
  def pictures(issue)
59
- @pictures ||= issue.attachments
60
- .select { |a| @ext.include? File.extname(a.filename).downcase }
61
- .map(&:filename)
59
+ issue.attachments
60
+ .select { |a| @ext.include? File.extname(a.filename).downcase }
61
+ .map(&:filename)
62
62
  end
63
63
  end
64
64
  end
@@ -0,0 +1,46 @@
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 "wiki"
26
+
27
+ module Lazylead
28
+ # Check that ticket has a web link to external system with design.
29
+ class WikiUrl < Lazylead::Wiki
30
+ def initialize(url)
31
+ super
32
+ @url = url
33
+ end
34
+
35
+ def passed(issue)
36
+ link?(issue) || super(issue)
37
+ end
38
+
39
+ def link?(issue)
40
+ issue.remote_links
41
+ .reject { |l| l.attrs.nil? || l.attrs.empty? }
42
+ .reject { |l| l.attrs["object"].nil? || l.attrs["object"]["url"].nil? }
43
+ .any? { |l| l.attrs["object"]["url"].start_with? @url }
44
+ end
45
+ end
46
+ end
@@ -23,5 +23,5 @@
23
23
  # OR OTHER DEALINGS IN THE SOFTWARE.
24
24
 
25
25
  module Lazylead
26
- VERSION = "0.10.1"
26
+ VERSION = "0.10.5"
27
27
  end
@@ -143,7 +143,7 @@ module Lazylead
143
143
  end
144
144
 
145
145
  test "description is correct" do
146
- assert_words %w[DATACMNS-1639\ moved\ entity\ instantiators],
146
+ assert_words ["DATACMNS-1639 moved entity instantiators"],
147
147
  NoAuthJira.new("https://jira.spring.io")
148
148
  .issues("key=DATAJDBC-480")
149
149
  .first
@@ -151,7 +151,7 @@ module Lazylead
151
151
  end
152
152
 
153
153
  test "component is correct" do
154
- assert_equal %w[Stream\ Module],
154
+ assert_equal ["Stream Module"],
155
155
  NoAuthJira.new("https://jira.spring.io")
156
156
  .issues("key=XD-3766")
157
157
  .first
@@ -0,0 +1,54 @@
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/has_label"
27
+
28
+ module Lazylead
29
+ class HasLabelTest < Lazylead::Test
30
+ test "label is present" do
31
+ assert HasLabel.new("Invalid_Reopen").passed(
32
+ OpenStruct.new(
33
+ labels: %w[Invalid_Reopen 10%]
34
+ )
35
+ )
36
+ end
37
+
38
+ test "label is absent" do
39
+ refute HasLabel.new("Invalid_Reopen").passed(
40
+ OpenStruct.new(
41
+ labels: %w[E2E top_priority 10%]
42
+ )
43
+ )
44
+ end
45
+
46
+ test "labels are absent in ticket" do
47
+ refute HasLabel.new("Invalid_Reopen").passed(
48
+ OpenStruct.new(
49
+ labels: []
50
+ )
51
+ )
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,55 @@
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/records_link"
27
+
28
+ module Lazylead
29
+ class RecordsTest < Lazylead::Test
30
+ test "log file is present and link is absent" do
31
+ assert RecordsLink.new("https://youtube.com/xyz").passed(
32
+ OpenStruct.new(
33
+ attachments: [OpenStruct.new(attrs: { "size" => 10_241, "filename" => "steps.mp4" })]
34
+ )
35
+ )
36
+ end
37
+
38
+ test "file is absent but description has url to video" do
39
+ assert RecordsLink.new("https://youtube.com/xyz").passed(
40
+ OpenStruct.new(description: "Here is the reproducing steps: https://youtube.com/xyzzzzz")
41
+ )
42
+ end
43
+
44
+ test "several base urls to video" do
45
+ assert RecordsLink.new("https://site.a.com/xyz", "http://site.b.com/zyx").passed(
46
+ OpenStruct.new(description: "Here is the reproducing steps: http://site.b.com/zyx123. Wow!")
47
+ )
48
+ end
49
+
50
+ test "file is absent and link is absent" do
51
+ refute RecordsLink.new("https://youtube.com/xyz")
52
+ .passed(OpenStruct.new(attachments: []))
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,54 @@
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/wiki_url"
27
+
28
+ module Lazylead
29
+ class WikiUrlTest < Lazylead::Test
30
+ test "wiki reference is present as url" do
31
+ assert WikiUrl.new("https://wiki.com/page=").passed(
32
+ OpenStruct.new(
33
+ remote_links: [
34
+ OpenStruct.new(
35
+ attrs: { "object" => { "url" => "https://wiki.com/page=5" } }
36
+ )
37
+ ]
38
+ )
39
+ )
40
+ end
41
+
42
+ test "wiki reference is absent as url" do
43
+ refute WikiUrl.new("https://wiki.com/page=").passed(
44
+ OpenStruct.new(
45
+ remote_links: [
46
+ OpenStruct.new(
47
+ attrs: {}
48
+ )
49
+ ]
50
+ )
51
+ )
52
+ end
53
+ end
54
+ end
@@ -55,7 +55,7 @@ module Lazylead
55
55
  )
56
56
  )
57
57
  assert_email "[SVN] Important files have been changed!",
58
- %w[3 dgroup /189.md Add\ description\ for\ 189\ issue]
58
+ ["3", "dgroup", "/189.md", "Add description for 189 issue"]
59
59
  end
60
60
  end
61
61
  end
data/test/sqlite_test.rb CHANGED
@@ -46,7 +46,7 @@ module Lazylead
46
46
  tbl = t.first.to_s
47
47
  cols = t.values_at(1).sort.join(",")
48
48
  raise "No columns found for table #{tbl} in #{tables}" if cols.empty?
49
- refute schema[tbl].nil?, "Table '#{tbl}' not found in #{schema}"
49
+ refute_nil schema[tbl], "Table '#{tbl}' not found in #{schema}"
50
50
  assert_equal cols, schema[tbl], "Columns mismatch for '#{tbl}'"
51
51
  end
52
52
  end
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.10.1
4
+ version: 0.10.5
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-07-13 00:00:00.000000000 Z
11
+ date: 2021-08-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activerecord
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - '='
60
60
  - !ruby/object:Gem::Version
61
- version: 1.5.1
61
+ version: 1.7.0
62
62
  type: :runtime
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - '='
67
67
  - !ruby/object:Gem::Version
68
- version: 1.5.1
68
+ version: 1.7.0
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: get_process_mem
71
71
  requirement: !ruby/object:Gem::Requirement
@@ -164,6 +164,20 @@ dependencies:
164
164
  - - '='
165
165
  - !ruby/object:Gem::Version
166
166
  version: 1.0.0
167
+ - !ruby/object:Gem::Dependency
168
+ name: nokogiri
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 1.11.3
174
+ type: :runtime
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '='
179
+ - !ruby/object:Gem::Version
180
+ version: 1.11.3
167
181
  - !ruby/object:Gem::Dependency
168
182
  name: openssl
169
183
  requirement: !ruby/object:Gem::Requirement
@@ -226,14 +240,14 @@ dependencies:
226
240
  requirements:
227
241
  - - '='
228
242
  - !ruby/object:Gem::Version
229
- version: 3.7.0
243
+ version: 3.8.0
230
244
  type: :runtime
231
245
  prerelease: false
232
246
  version_requirements: !ruby/object:Gem::Requirement
233
247
  requirements:
234
248
  - - '='
235
249
  - !ruby/object:Gem::Version
236
- version: 3.7.0
250
+ version: 3.8.0
237
251
  - !ruby/object:Gem::Dependency
238
252
  name: slop
239
253
  requirement: !ruby/object:Gem::Requirement
@@ -366,14 +380,14 @@ dependencies:
366
380
  requirements:
367
381
  - - '='
368
382
  - !ruby/object:Gem::Version
369
- version: 2.17.0
383
+ version: 2.18.0
370
384
  type: :development
371
385
  prerelease: false
372
386
  version_requirements: !ruby/object:Gem::Requirement
373
387
  requirements:
374
388
  - - '='
375
389
  - !ruby/object:Gem::Version
376
- version: 2.17.0
390
+ version: 2.18.0
377
391
  - !ruby/object:Gem::Dependency
378
392
  name: guard-minitest
379
393
  requirement: !ruby/object:Gem::Requirement
@@ -506,28 +520,28 @@ dependencies:
506
520
  requirements:
507
521
  - - '='
508
522
  - !ruby/object:Gem::Version
509
- version: 1.18.3
523
+ version: 1.19.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: 1.18.3
530
+ version: 1.19.0
517
531
  - !ruby/object:Gem::Dependency
518
532
  name: rubocop-minitest
519
533
  requirement: !ruby/object:Gem::Requirement
520
534
  requirements:
521
535
  - - '='
522
536
  - !ruby/object:Gem::Version
523
- version: 0.14.0
537
+ version: 0.15.0
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: 0.14.0
544
+ version: 0.15.0
531
545
  - !ruby/object:Gem::Dependency
532
546
  name: rubocop-performance
533
547
  requirement: !ruby/object:Gem::Requirement
@@ -693,10 +707,12 @@ files:
693
707
  - lib/lazylead/task/accuracy/affected_build.rb
694
708
  - lib/lazylead/task/accuracy/attachment.rb
695
709
  - lib/lazylead/task/accuracy/environment.rb
710
+ - lib/lazylead/task/accuracy/has_label.rb
696
711
  - lib/lazylead/task/accuracy/logs.rb
697
712
  - lib/lazylead/task/accuracy/logs_link.rb
698
713
  - lib/lazylead/task/accuracy/onlyll.rb
699
714
  - lib/lazylead/task/accuracy/records.rb
715
+ - lib/lazylead/task/accuracy/records_link.rb
700
716
  - lib/lazylead/task/accuracy/required.rb
701
717
  - lib/lazylead/task/accuracy/requirement.rb
702
718
  - lib/lazylead/task/accuracy/screenshots.rb
@@ -704,6 +720,7 @@ files:
704
720
  - lib/lazylead/task/accuracy/stacktrace.rb
705
721
  - lib/lazylead/task/accuracy/testcase.rb
706
722
  - lib/lazylead/task/accuracy/wiki.rb
723
+ - lib/lazylead/task/accuracy/wiki_url.rb
707
724
  - lib/lazylead/task/alert/alert.rb
708
725
  - lib/lazylead/task/alert/alertif.rb
709
726
  - lib/lazylead/task/alert/changed_to.rb
@@ -754,9 +771,11 @@ files:
754
771
  - test/lazylead/task/accuracy/affected_build_test.rb
755
772
  - test/lazylead/task/accuracy/attachment_test.rb
756
773
  - test/lazylead/task/accuracy/environment_test.rb
774
+ - test/lazylead/task/accuracy/has_label_test.rb
757
775
  - test/lazylead/task/accuracy/logs_link_test.rb
758
776
  - test/lazylead/task/accuracy/logs_test.rb
759
777
  - test/lazylead/task/accuracy/onlyll_test.rb
778
+ - test/lazylead/task/accuracy/records_llink_test.rb
760
779
  - test/lazylead/task/accuracy/records_test.rb
761
780
  - test/lazylead/task/accuracy/score_test.rb
762
781
  - test/lazylead/task/accuracy/screenshots_test.rb
@@ -764,6 +783,7 @@ files:
764
783
  - test/lazylead/task/accuracy/stacktrace_test.rb
765
784
  - test/lazylead/task/accuracy/testcase_test.rb
766
785
  - test/lazylead/task/accuracy/wiki_test.rb
786
+ - test/lazylead/task/accuracy/wiki_url_test.rb
767
787
  - test/lazylead/task/alert/alertif_test.rb
768
788
  - test/lazylead/task/alert/assignee_alert_test.rb
769
789
  - test/lazylead/task/alert/changed_to_test.rb
@@ -791,7 +811,7 @@ licenses:
791
811
  - MIT
792
812
  metadata: {}
793
813
  post_install_message: |-
794
- Thanks for installing Lazylead v0.10.1!
814
+ Thanks for installing Lazylead v0.10.5!
795
815
  Read our blog posts: https://lazylead.org
796
816
  Stay in touch with the community in Telegram: https://t.me/lazylead
797
817
  Follow us on Twitter: https://twitter.com/lazylead
@@ -832,9 +852,11 @@ test_files:
832
852
  - test/lazylead/task/accuracy/affected_build_test.rb
833
853
  - test/lazylead/task/accuracy/attachment_test.rb
834
854
  - test/lazylead/task/accuracy/environment_test.rb
855
+ - test/lazylead/task/accuracy/has_label_test.rb
835
856
  - test/lazylead/task/accuracy/logs_link_test.rb
836
857
  - test/lazylead/task/accuracy/logs_test.rb
837
858
  - test/lazylead/task/accuracy/onlyll_test.rb
859
+ - test/lazylead/task/accuracy/records_llink_test.rb
838
860
  - test/lazylead/task/accuracy/records_test.rb
839
861
  - test/lazylead/task/accuracy/score_test.rb
840
862
  - test/lazylead/task/accuracy/screenshots_test.rb
@@ -842,6 +864,7 @@ test_files:
842
864
  - test/lazylead/task/accuracy/stacktrace_test.rb
843
865
  - test/lazylead/task/accuracy/testcase_test.rb
844
866
  - test/lazylead/task/accuracy/wiki_test.rb
867
+ - test/lazylead/task/accuracy/wiki_url_test.rb
845
868
  - test/lazylead/task/alert/alertif_test.rb
846
869
  - test/lazylead/task/alert/assignee_alert_test.rb
847
870
  - test/lazylead/task/alert/changed_to_test.rb