judges 0.36.3 → 0.36.4

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: c06d526549c849e49cfbcfde2ee3fd4dc52faab0bbfe5df0ef7c3ce200c71b4f
4
- data.tar.gz: 3d551fcb0d52c7846db7738fef0182a36e68aa7689b48b2b9289952acb1ad965
3
+ metadata.gz: 44fbe12278921e20529d7d5821310e51871ee00f6454545609db7e47aceb94c2
4
+ data.tar.gz: 1c78c07994f375d4883d3ebeaa1cecb0c64ba9787e1a6d02483f15fda41f6884
5
5
  SHA512:
6
- metadata.gz: 0ef943a22165d68a704a876c3755d37e8d2838345e5056a1e7a6c904c4b98fd34271564c7c84c0df8bf7bfbb051393f758ddd434665593ddf4afed956b25c578
7
- data.tar.gz: 7d8907d28baa9bd97f673c4ab3143249a0547f77fb4edc7dfdcfa7ea0cacafe1590115dd5e1ebda3d82259610c4a6e27053364e9db9576447aec7a607581ccb6
6
+ metadata.gz: 467af03faf7b94e5e21c60981fd21fe00845d8a8a81f8ab2b9384ab0657150509f62ed3f458cd3f3f1b358d14ec939412d5339d25cdb03bb6ce6cae4f1749825
7
+ data.tar.gz: ed22a9d88467a686cd2753dd2eeed657c4565ea025fbf005a2df7e45bcd3168dc423fd305b01ed7410c1487707235b66eb1441175c4b471adaad84484ed3c93d
data/Gemfile CHANGED
@@ -7,12 +7,14 @@ source 'https://rubygems.org'
7
7
  gemspec
8
8
 
9
9
  gem 'cucumber', '9.2.1', require: false
10
- gem 'minitest', '5.25.4', require: false
10
+ gem 'minitest', '5.25.5', require: false
11
11
  gem 'minitest-reporters', '1.7.1', require: false
12
+ gem 'net-ping', '2.0.8', require: false
13
+ gem 'qbash', '>0', require: false
12
14
  gem 'rake', '13.2.1', require: false
13
15
  gem 'random-port', '~>0.0', require: false
14
16
  gem 'rspec-rails', '7.1.1', require: false
15
- gem 'rubocop', '1.73.2', require: false
17
+ gem 'rubocop', '1.74.0', require: false
16
18
  gem 'rubocop-minitest', '>0', require: false
17
19
  gem 'rubocop-performance', '>0', require: false
18
20
  gem 'rubocop-rake', '>0', require: false
data/Gemfile.lock CHANGED
@@ -114,7 +114,7 @@ GEM
114
114
  erubi (1.13.1)
115
115
  ethon (0.16.0)
116
116
  ffi (>= 1.15.0)
117
- factbase (0.9.1)
117
+ factbase (0.9.3)
118
118
  backtrace (>= 0.4.0)
119
119
  decoor (>= 0.0.1)
120
120
  json (~> 2.7)
@@ -163,7 +163,7 @@ GEM
163
163
  loog (0.6.0)
164
164
  mini_mime (1.1.5)
165
165
  mini_portile2 (2.8.8)
166
- minitest (5.25.4)
166
+ minitest (5.25.5)
167
167
  minitest-reporters (1.7.1)
168
168
  ansi
169
169
  builder
@@ -174,20 +174,21 @@ GEM
174
174
  multipart-post (2.4.1)
175
175
  net-http (0.6.0)
176
176
  uri
177
- nokogiri (1.18.3)
177
+ net-ping (2.0.8)
178
+ nokogiri (1.18.4)
178
179
  mini_portile2 (~> 2.8.2)
179
180
  racc (~> 1.4)
180
- nokogiri (1.18.3-aarch64-linux-gnu)
181
+ nokogiri (1.18.4-aarch64-linux-gnu)
181
182
  racc (~> 1.4)
182
- nokogiri (1.18.3-arm-linux-gnu)
183
+ nokogiri (1.18.4-arm-linux-gnu)
183
184
  racc (~> 1.4)
184
- nokogiri (1.18.3-arm64-darwin)
185
+ nokogiri (1.18.4-arm64-darwin)
185
186
  racc (~> 1.4)
186
- nokogiri (1.18.3-x64-mingw-ucrt)
187
+ nokogiri (1.18.4-x64-mingw-ucrt)
187
188
  racc (~> 1.4)
188
- nokogiri (1.18.3-x86_64-darwin)
189
+ nokogiri (1.18.4-x86_64-darwin)
189
190
  racc (~> 1.4)
190
- nokogiri (1.18.3-x86_64-linux-gnu)
191
+ nokogiri (1.18.4-x86_64-linux-gnu)
191
192
  racc (~> 1.4)
192
193
  ostruct (0.6.1)
193
194
  others (0.0.3)
@@ -202,6 +203,11 @@ GEM
202
203
  date
203
204
  stringio
204
205
  public_suffix (6.0.1)
206
+ qbash (0.4.0)
207
+ backtrace (> 0)
208
+ elapsed (> 0)
209
+ loog (> 0)
210
+ tago (> 0)
205
211
  racc (1.8.1)
206
212
  rack (3.1.12)
207
213
  rack-session (2.1.0)
@@ -254,7 +260,7 @@ GEM
254
260
  rspec-mocks (~> 3.13)
255
261
  rspec-support (~> 3.13)
256
262
  rspec-support (3.13.2)
257
- rubocop (1.73.2)
263
+ rubocop (1.74.0)
258
264
  json (~> 2.3)
259
265
  language_server-protocol (~> 3.17.0.2)
260
266
  lint_roller (~> 1.1.0)
@@ -265,7 +271,7 @@ GEM
265
271
  rubocop-ast (>= 1.38.0, < 2.0)
266
272
  ruby-progressbar (~> 1.7)
267
273
  unicode-display_width (>= 2.4.0, < 4.0)
268
- rubocop-ast (1.38.1)
274
+ rubocop-ast (1.39.0)
269
275
  parser (>= 3.3.1.0)
270
276
  rubocop-minitest (0.37.1)
271
277
  lint_roller (~> 1.1)
@@ -333,12 +339,14 @@ PLATFORMS
333
339
  DEPENDENCIES
334
340
  cucumber (= 9.2.1)
335
341
  judges!
336
- minitest (= 5.25.4)
342
+ minitest (= 5.25.5)
337
343
  minitest-reporters (= 1.7.1)
344
+ net-ping (= 2.0.8)
345
+ qbash (> 0)
338
346
  rake (= 13.2.1)
339
347
  random-port (~> 0.0)
340
348
  rspec-rails (= 7.1.1)
341
- rubocop (= 1.73.2)
349
+ rubocop (= 1.74.0)
342
350
  rubocop-minitest (> 0)
343
351
  rubocop-performance (> 0)
344
352
  rubocop-rake (> 0)
data/Rakefile CHANGED
@@ -3,10 +3,12 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
+ require 'qbash'
6
7
  require 'rubygems'
7
8
  require 'rake'
8
9
  require 'rdoc'
9
10
  require 'rake/clean'
11
+ require 'shellwords'
10
12
 
11
13
  def name
12
14
  @name ||= File.basename(Dir['*.gemspec'].first, '.*')
@@ -18,7 +20,7 @@ end
18
20
 
19
21
  ENV['RACK_ENV'] = 'test'
20
22
 
21
- task default: %i[clean test features rubocop yard]
23
+ task default: %i[clean test picks reqs features rubocop yard]
22
24
 
23
25
  require 'rake/testtask'
24
26
  desc 'Run all unit tests'
@@ -30,6 +32,20 @@ Rake::TestTask.new(:test) do |test|
30
32
  test.verbose = false
31
33
  end
32
34
 
35
+ desc 'Run them via Ruby, one by one'
36
+ task :picks do
37
+ Dir['test/**/*.rb'].each do |f|
38
+ qbash("bundle exec ruby #{Shellwords.escape(f)}", log: $stdout)
39
+ end
40
+ end
41
+
42
+ desc 'Require them via Ruby, one by one'
43
+ task :reqs do
44
+ Dir['lib/**/*.rb'].each do |f|
45
+ qbash("bundle exec ruby #{Shellwords.escape(f)}", log: $stdout)
46
+ end
47
+ end
48
+
33
49
  require 'cucumber/rake/task'
34
50
  Cucumber::Rake::Task.new(:features) do |t|
35
51
  Rake::Cleaner.cleanup_files(['coverage'])
@@ -16,9 +16,9 @@ Feature: Test
16
16
  And Exit code is zero
17
17
 
18
18
  Scenario: Factbase version can be set
19
- When I run bin/judges with "--factbase 0.9.1 --verbose test --judge guess ./fixtures"
19
+ When I run bin/judges with "--factbase 0.9.3 --verbose test --judge guess ./fixtures"
20
20
  Then Exit code is zero
21
- And Stdout contains "Factbase version to be used: '0.9.1'"
21
+ And Stdout contains "Factbase version to be used: '0.9.3'"
22
22
 
23
23
  Scenario: Simple test of no judges
24
24
  Given I run bin/judges with "test --judge absent_for_sure ./fixtures"
data/judges.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
10
10
  s.required_ruby_version = '>=3.2'
11
11
  s.name = 'judges'
12
- s.version = '0.36.3'
12
+ s.version = '0.36.4'
13
13
  s.license = 'MIT'
14
14
  s.summary = 'Command-Line Tool for a Factbase'
15
15
  s.description =
@@ -59,6 +59,8 @@ class Judges::Test
59
59
  next
60
60
  end
61
61
  @loog.info("🛠️ Testing #{f.to_rel}:")
62
+ start = Time.now
63
+ badge = "#{judge.name}/#{tname}"
62
64
  begin
63
65
  fb = Factbase.new
64
66
  prepare(fb, yaml)
@@ -67,9 +69,7 @@ class Judges::Test
67
69
  @loog.info("Running #{j.script} judge as a pre-condition...")
68
70
  test_one(fb, opts, j, n, yaml, assert: false)
69
71
  end
70
- start = Time.now
71
72
  test_one(fb, opts, judge, tname, yaml)
72
- times["#{judge.name}/#{tname}"] = Time.now - start
73
73
  yaml['after']&.each do |rb|
74
74
  @loog.info("Running #{rb} assertion script...")
75
75
  $fb = fb
@@ -79,20 +79,21 @@ class Judges::Test
79
79
  tests += 1
80
80
  rescue StandardError => e
81
81
  @loog.warn(Backtrace.new(e))
82
- errors << f
82
+ errors << badge
83
83
  end
84
+ times[badge] = Time.now - start
84
85
  end
85
86
  tested += 1
86
87
  end
87
88
  unless times.empty?
88
- fmt = "%60s\t%9s"
89
+ fmt = "%60s\t%9s\t%9s"
89
90
  @loog.info(
90
91
  [
91
- 'Time summaries:',
92
- format(fmt, 'Script', 'Seconds'),
93
- format(fmt, '---', '---'),
92
+ 'Test summary:',
93
+ format(fmt, 'Script', 'Seconds', 'Result'),
94
+ format(fmt, '---', '---', '---'),
94
95
  times.sort_by { |_, v| v }.reverse.map do |script, sec|
95
- format(fmt, script, format('%.3f', sec))
96
+ format(fmt, script, format('%.3f', sec), errors.include?(script) ? 'ERROR' : 'OK')
96
97
  end.join("\n ")
97
98
  ].join("\n ")
98
99
  )
@@ -143,6 +144,14 @@ class Judges::Test
143
144
  end
144
145
  end
145
146
 
147
+ # Test a single test in a single judge and raise exception if the test fails.
148
+ # @param [Factbase] fb The factbase to use
149
+ # @param [Hash] opts The command line options
150
+ # @param [Judges::Judge] judge The judge to run
151
+ # @param [String] tname The name of the test (without .rb suffix)
152
+ # @param [Hash] yaml The YAML to be tested
153
+ # @param [Boolean] assert Should we assert (TRUE) or simply skip (FALSE)?
154
+ # @return [nil] Always NIL
146
155
  def test_one(fb, opts, judge, tname, yaml, assert: true)
147
156
  options = Judges::Options.new(opts['option']) + Judges::Options.new(yaml['options'])
148
157
  runs = opts['runs'] || yaml['runs'] || 1
@@ -5,6 +5,7 @@
5
5
 
6
6
  require 'backtrace'
7
7
  require 'elapsed'
8
+ require 'factbase'
8
9
  require 'factbase/churn'
9
10
  require 'tago'
10
11
  require 'timeout'
data/lib/judges.rb CHANGED
@@ -8,5 +8,5 @@
8
8
  # Copyright:: Copyright (c) 2024-2025 Yegor Bugayenko
9
9
  # License:: MIT
10
10
  module Judges
11
- VERSION = '0.36.3'
11
+ VERSION = '0.36.4'
12
12
  end
@@ -3,7 +3,6 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require 'loog'
8
7
  require 'nokogiri'
9
8
  require 'factbase/to_xml'
@@ -3,7 +3,6 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require 'loog'
8
7
  require 'nokogiri'
9
8
  require 'factbase/to_xml'
@@ -3,11 +3,11 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'loog'
8
6
  require 'factbase'
7
+ require 'loog'
9
8
  require_relative '../../lib/judges'
10
9
  require_relative '../../lib/judges/commands/inspect'
10
+ require_relative '../test__helper'
11
11
 
12
12
  # Test.
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,12 +3,12 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
6
+ require 'factbase/to_xml'
7
7
  require 'loog'
8
8
  require 'nokogiri'
9
- require 'factbase/to_xml'
10
9
  require_relative '../../lib/judges'
11
10
  require_relative '../../lib/judges/commands/join'
11
+ require_relative '../test__helper'
12
12
 
13
13
  # Test.
14
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,17 +3,18 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'loog'
8
6
  require 'factbase'
9
- require 'nokogiri'
10
- require 'yaml'
11
7
  require 'fileutils'
8
+ require 'loog'
9
+ require 'net/ping'
10
+ require 'nokogiri'
12
11
  require 'securerandom'
13
12
  require 'w3c_validators'
14
13
  require 'webmock/minitest'
14
+ require 'yaml'
15
15
  require_relative '../../lib/judges'
16
16
  require_relative '../../lib/judges/commands/print'
17
+ require_relative '../test__helper'
17
18
 
18
19
  # Test.
19
20
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -34,6 +35,8 @@ class TestPrint < Minitest::Test
34
35
  end
35
36
 
36
37
  def test_print_to_html
38
+ WebMock.enable_net_connect!
39
+ skip('We are offline') unless we_are_online
37
40
  fb = Factbase.new
38
41
  10.times do
39
42
  f = fb.insert
@@ -101,4 +104,10 @@ class TestPrint < Minitest::Test
101
104
  assert_equal(mtime, File.mtime(y))
102
105
  end
103
106
  end
107
+
108
+ private
109
+
110
+ def we_are_online
111
+ Net::Ping::External.new('8.8.8.8').ping?
112
+ end
104
113
  end
@@ -3,12 +3,12 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'webmock/minitest'
8
- require 'loog'
9
6
  require 'factbase'
7
+ require 'loog'
8
+ require 'webmock/minitest'
10
9
  require_relative '../../lib/judges'
11
10
  require_relative '../../lib/judges/commands/pull'
11
+ require_relative '../test__helper'
12
12
 
13
13
  # Test.
14
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,11 +3,11 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'webmock/minitest'
8
6
  require 'loog'
7
+ require 'webmock/minitest'
9
8
  require_relative '../../lib/judges'
10
9
  require_relative '../../lib/judges/commands/push'
10
+ require_relative '../test__helper'
11
11
 
12
12
  # Test.
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,11 +3,10 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require 'loog'
8
- require_relative '../test__helper'
9
7
  require_relative '../../lib/judges'
10
8
  require_relative '../../lib/judges/commands/test'
9
+ require_relative '../test__helper'
11
10
 
12
11
  # Test.
13
12
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,12 +3,12 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require 'loog'
8
7
  require 'nokogiri'
9
8
  require 'time'
10
9
  require_relative '../../lib/judges'
11
10
  require_relative '../../lib/judges/commands/trim'
11
+ require_relative '../test__helper'
12
12
 
13
13
  # Test.
14
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,7 +3,6 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require 'loog'
8
7
  require 'nokogiri'
9
8
  require 'factbase/to_xml'
data/test/test_bin.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
6
+ require_relative 'test__helper'
7
7
 
8
8
  # Test.
9
9
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
@@ -3,9 +3,9 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require_relative '../lib/judges'
8
7
  require_relative '../lib/judges/categories'
8
+ require_relative 'test__helper'
9
9
 
10
10
  # Test.
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_impex.rb CHANGED
@@ -3,11 +3,11 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'tmpdir'
8
6
  require 'loog'
7
+ require 'tmpdir'
9
8
  require_relative '../lib/judges'
10
9
  require_relative '../lib/judges/impex'
10
+ require_relative 'test__helper'
11
11
 
12
12
  # Test.
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_judge.rb CHANGED
@@ -3,13 +3,12 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'tmpdir'
8
- require 'loog'
9
6
  require 'factbase'
10
- require_relative 'test__helper'
7
+ require 'loog'
8
+ require 'tmpdir'
11
9
  require_relative '../lib/judges'
12
10
  require_relative '../lib/judges/judge'
11
+ require_relative 'test__helper'
13
12
 
14
13
  # Test.
15
14
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_judges.rb CHANGED
@@ -3,11 +3,11 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
- require 'tmpdir'
8
6
  require 'loog'
7
+ require 'tmpdir'
9
8
  require_relative '../lib/judges'
10
9
  require_relative '../lib/judges/judges'
10
+ require_relative 'test__helper'
11
11
 
12
12
  # Test.
13
13
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_options.rb CHANGED
@@ -3,9 +3,9 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require_relative '../lib/judges'
8
7
  require_relative '../lib/judges/options'
8
+ require_relative 'test__helper'
9
9
 
10
10
  # Test.
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
data/test/test_to_rel.rb CHANGED
@@ -3,9 +3,9 @@
3
3
  # SPDX-FileCopyrightText: Copyright (c) 2024-2025 Yegor Bugayenko
4
4
  # SPDX-License-Identifier: MIT
5
5
 
6
- require 'minitest/autorun'
7
6
  require_relative '../lib/judges'
8
7
  require_relative '../lib/judges/to_rel'
8
+ require_relative 'test__helper'
9
9
 
10
10
  # Test.
11
11
  # Author:: Yegor Bugayenko (yegor256@gmail.com)
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: judges
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.36.3
4
+ version: 0.36.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yegor Bugayenko
8
8
  bindir: bin
9
9
  cert_chain: []
10
- date: 2025-03-12 00:00:00.000000000 Z
10
+ date: 2025-03-17 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: backtrace