minitest 5.22.3 → 5.23.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +31 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +15 -13
- data/Rakefile +6 -0
- data/lib/minitest/error_on_warning.rb +11 -0
- data/lib/minitest/manual_plugins.rb +16 -0
- data/lib/minitest/parallel.rb +1 -1
- data/lib/minitest/test_task.rb +1 -1
- data/lib/minitest.rb +35 -3
- data/test/minitest/metametameta.rb +13 -2
- data/test/minitest/test_minitest_assertions.rb +18 -19
- data/test/minitest/test_minitest_mock.rb +13 -11
- data/test/minitest/test_minitest_reporter.rb +1 -1
- data/test/minitest/test_minitest_spec.rb +19 -17
- data/test/minitest/test_minitest_test.rb +5 -5
- data.tar.gz.sig +0 -0
- metadata +4 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eea239479abe950b2b6ac7881a88c73088fd9efc7dcddd5f54ceb7717830e7d7
|
4
|
+
data.tar.gz: 645ac4943b4bb6d1a4cca710d10bfe6d6526ce78a99d5393aae1a91152a0bded
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6eb63425f42af466e8d839fa5de4f4dc57da32bc2a6798d40421ac99cc41b9c782a3fa7e91113463de0a261d1af6e8ddf2d3316fba5a141413f15b7fd4aedf73
|
7
|
+
data.tar.gz: 8c60d2666e50e2c683b9f32363702ba5b529c7170b9c3d32df077fbc912430e6de76b1cc3f0fcdb72d03d0abaa75cda2b90c742ed9937115d7416008e45a45f1
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,34 @@
|
|
1
|
+
=== 5.23.1 / 2024-05-21
|
2
|
+
|
3
|
+
* 1 bug fix:
|
4
|
+
|
5
|
+
* Fully qualify the Queue class to avoid conflicts with other libraries. (rafaelfranca)
|
6
|
+
|
7
|
+
=== 5.23.0 / 2024-05-15
|
8
|
+
|
9
|
+
* 3 minor enhancements:
|
10
|
+
|
11
|
+
* Added -Werror to raise on any warning output. (byroot)
|
12
|
+
* Added UnexpectedWarning as a failure summary type, added count to output if activated.
|
13
|
+
* Added minitest/manual_plugins.rb w/ new Minitest.load method. (tenderlove)
|
14
|
+
|
15
|
+
* 2 bug fixes:
|
16
|
+
|
17
|
+
* Allow empty_run! and reporter to display summary for empty runs. (zzak)
|
18
|
+
* Make test task verbose using either rake's -v or -t (was just -t).
|
19
|
+
|
20
|
+
=== 5.22.3 / 2024-03-13
|
21
|
+
|
22
|
+
* 1 minor enhancement:
|
23
|
+
|
24
|
+
* MASSIVE improvement of minitest's pride plugin output: Frequencies doubled! Sine waves shifted!! Comments improved!!! Colors rotated!!!! (havenwood)
|
25
|
+
|
26
|
+
* 3 bug fixes:
|
27
|
+
|
28
|
+
* Improved wording on Minitest::Test#parallelize_me! to clarify it goes INSIDE your test class/describe.
|
29
|
+
* Minor changes to tests to pass when tests ran with extra flags (eg -p).
|
30
|
+
* Support Ruby 3.4's new error message format. (mame)
|
31
|
+
|
1
32
|
=== 5.22.2 / 2024-02-07
|
2
33
|
|
3
34
|
* 1 bug fix:
|
data/Manifest.txt
CHANGED
@@ -10,8 +10,10 @@ lib/minitest/assertions.rb
|
|
10
10
|
lib/minitest/autorun.rb
|
11
11
|
lib/minitest/benchmark.rb
|
12
12
|
lib/minitest/compress.rb
|
13
|
+
lib/minitest/error_on_warning.rb
|
13
14
|
lib/minitest/expectations.rb
|
14
15
|
lib/minitest/hell.rb
|
16
|
+
lib/minitest/manual_plugins.rb
|
15
17
|
lib/minitest/mock.rb
|
16
18
|
lib/minitest/parallel.rb
|
17
19
|
lib/minitest/pride.rb
|
data/README.rdoc
CHANGED
@@ -406,22 +406,23 @@ Using our example above, here is how we might implement MyCI:
|
|
406
406
|
|
407
407
|
=== What versions are compatible with what? Or what versions are supported?
|
408
408
|
|
409
|
-
Minitest is a dependency of rails, which until
|
409
|
+
Minitest is a dependency of rails, which until very recently had an
|
410
410
|
overzealous backwards compatibility policy. As such, I'm stuck
|
411
411
|
supporting versions of ruby that are long past EOL. Hopefully I'll be
|
412
412
|
able to support only current versions of ruby sometime in the near
|
413
413
|
future.
|
414
414
|
|
415
|
-
(As of
|
415
|
+
(As of 2024-05-10)
|
416
416
|
|
417
417
|
Current versions of rails: (https://endoflife.date/rails)
|
418
418
|
|
419
|
-
| rails | min ruby |
|
420
|
-
|
421
|
-
| 7.
|
422
|
-
|
|
423
|
-
| 6.
|
424
|
-
|
|
419
|
+
| rails | min ruby | minitest | status | EOL Date |
|
420
|
+
|-------+----------+----------+----------+------------|
|
421
|
+
| 7.1 | >= 2.7 | >= 5.1 | Current | 2026-06-01?|
|
422
|
+
| 7.0 | >= 2.7 | >= 5.1 | Maint | 2025-06-01?|
|
423
|
+
| 6.1 | >= 2.5 | >= 5.1 | Security | 2024-06-01?|
|
424
|
+
| 6.0 | >= 2.5 | >= 5.1 | EOL | 2023-06-01 |
|
425
|
+
| 5.2 | >= 2.2.2 | ~> 5.1 | EOL | 2022-06-01 |
|
425
426
|
|
426
427
|
If you want to look at the requirements for a specific version, run:
|
427
428
|
|
@@ -431,12 +432,13 @@ Current versions of ruby: (https://endoflife.date/ruby)
|
|
431
432
|
|
432
433
|
| ruby | Status | EOL Date |
|
433
434
|
|------+---------+------------|
|
434
|
-
| 3.
|
435
|
-
| 3.
|
436
|
-
| 3.
|
437
|
-
|
|
435
|
+
| 3.3 | Current | 2027-03-31 |
|
436
|
+
| 3.2 | Maint | 2026-03-31 |
|
437
|
+
| 3.1 | Security| 2025-03-31 |
|
438
|
+
| 3.0 | EOL | 2024-03-31 |
|
439
|
+
| 2.7 | EOL | 2023-03-31 |
|
438
440
|
| 2.6 | EOL | 2022-03-31 |
|
439
|
-
| 2.5 | EOL | 2021-03-31 |
|
441
|
+
| 2.5 | EOL | 2021-03-31 | DO YOU SEE WHAT I'M STUCK WITH???
|
440
442
|
|
441
443
|
=== How to test SimpleDelegates?
|
442
444
|
|
data/Rakefile
CHANGED
@@ -33,6 +33,7 @@ task :specs do
|
|
33
33
|
/_includes/ => "_include",
|
34
34
|
/(must|wont)_(.*_of|nil|silent|empty)/ => '\1_be_\2',
|
35
35
|
/must_raises/ => "must_raise",
|
36
|
+
/(must|wont)_pattern/ => '\1_pattern_match',
|
36
37
|
/(must|wont)_predicate/ => '\1_be',
|
37
38
|
/(must|wont)_path_exists/ => 'path_\1_exist',
|
38
39
|
}
|
@@ -72,4 +73,9 @@ task :bugs do
|
|
72
73
|
sh "for f in bug*.rb ; do echo $f; echo; #{Gem.ruby} -Ilib $f && rm $f ; done"
|
73
74
|
end
|
74
75
|
|
76
|
+
Minitest::TestTask.create :testW0 do |t|
|
77
|
+
t.warning = false
|
78
|
+
t.test_prelude = "$-w = nil"
|
79
|
+
end
|
80
|
+
|
75
81
|
# vim: syntax=Ruby
|
data/lib/minitest/parallel.rb
CHANGED
data/lib/minitest/test_task.rb
CHANGED
@@ -114,7 +114,7 @@ module Minitest # :nodoc:
|
|
114
114
|
self.test_globs = ["test/**/test_*.rb",
|
115
115
|
"test/**/*_test.rb"]
|
116
116
|
self.test_prelude = nil
|
117
|
-
self.verbose = Rake.application.options.trace
|
117
|
+
self.verbose = Rake.application.options.trace || Rake.verbose == true
|
118
118
|
self.warning = true
|
119
119
|
end
|
120
120
|
|
data/lib/minitest.rb
CHANGED
@@ -9,7 +9,7 @@ require_relative "minitest/compress"
|
|
9
9
|
# :include: README.rdoc
|
10
10
|
|
11
11
|
module Minitest
|
12
|
-
VERSION = "5.
|
12
|
+
VERSION = "5.23.1" # :nodoc:
|
13
13
|
|
14
14
|
@@installed_at_exit ||= false
|
15
15
|
@@after_run = []
|
@@ -167,10 +167,10 @@ module Minitest
|
|
167
167
|
|
168
168
|
# might have been removed/replaced during init_plugins:
|
169
169
|
summary = reporter.reporters.grep(SummaryReporter).first
|
170
|
-
return empty_run! options if summary && summary.count == 0
|
171
170
|
|
172
171
|
reporter.report
|
173
172
|
|
173
|
+
return empty_run! options if summary && summary.count == 0
|
174
174
|
reporter.passed?
|
175
175
|
end
|
176
176
|
|
@@ -253,6 +253,20 @@ module Minitest
|
|
253
253
|
options[:skip] = s.chars.to_a
|
254
254
|
end
|
255
255
|
|
256
|
+
ruby27plus = ::Warning.respond_to?(:[]=)
|
257
|
+
|
258
|
+
opts.on "-W[error]", String, "Turn Ruby warnings into errors" do |s|
|
259
|
+
options[:Werror] = true
|
260
|
+
case s
|
261
|
+
when "error", "all", nil then
|
262
|
+
require "minitest/error_on_warning"
|
263
|
+
$VERBOSE = true
|
264
|
+
::Warning[:deprecated] = true if ruby27plus
|
265
|
+
else
|
266
|
+
::Warning[s.to_sym] = true if ruby27plus # check validity of category
|
267
|
+
end
|
268
|
+
end
|
269
|
+
|
256
270
|
unless extensions.empty?
|
257
271
|
opts.separator ""
|
258
272
|
opts.separator "Known extensions: #{extensions.join(", ")}"
|
@@ -782,6 +796,11 @@ module Minitest
|
|
782
796
|
|
783
797
|
attr_accessor :errors
|
784
798
|
|
799
|
+
##
|
800
|
+
# Total number of tests that warned.
|
801
|
+
|
802
|
+
attr_accessor :warnings
|
803
|
+
|
785
804
|
##
|
786
805
|
# Total number of tests that where skipped.
|
787
806
|
|
@@ -797,6 +816,7 @@ module Minitest
|
|
797
816
|
self.total_time = nil
|
798
817
|
self.failures = nil
|
799
818
|
self.errors = nil
|
819
|
+
self.warnings = nil
|
800
820
|
self.skips = nil
|
801
821
|
end
|
802
822
|
|
@@ -825,6 +845,7 @@ module Minitest
|
|
825
845
|
self.total_time = Minitest.clock_time - start_time
|
826
846
|
self.failures = aggregate[Assertion].size
|
827
847
|
self.errors = aggregate[UnexpectedError].size
|
848
|
+
self.warnings = aggregate[UnexpectedWarning].size
|
828
849
|
self.skips = aggregate[Skip].size
|
829
850
|
end
|
830
851
|
end
|
@@ -900,6 +921,8 @@ module Minitest
|
|
900
921
|
results.any?(&:skipped?) unless
|
901
922
|
options[:verbose] or options[:show_skips] or ENV["MT_NO_SKIP_MSG"]
|
902
923
|
|
924
|
+
extra.prepend ", %d warnings" % [warnings] if options[:Werror]
|
925
|
+
|
903
926
|
"%d runs, %d assertions, %d failures, %d errors, %d skips%s" %
|
904
927
|
[count, assertions, failures, errors, skips, extra]
|
905
928
|
end
|
@@ -1034,6 +1057,15 @@ module Minitest
|
|
1034
1057
|
end
|
1035
1058
|
end
|
1036
1059
|
|
1060
|
+
##
|
1061
|
+
# Assertion raised on warning when running in -Werror mode.
|
1062
|
+
|
1063
|
+
class UnexpectedWarning < Assertion
|
1064
|
+
def result_label # :nodoc:
|
1065
|
+
"Warning"
|
1066
|
+
end
|
1067
|
+
end
|
1068
|
+
|
1037
1069
|
##
|
1038
1070
|
# Provides a simple set of guards that you can use in your tests
|
1039
1071
|
# to skip execution if it is not applicable. These methods are
|
@@ -1107,7 +1139,7 @@ module Minitest
|
|
1107
1139
|
|
1108
1140
|
class BacktraceFilter
|
1109
1141
|
|
1110
|
-
MT_RE = %r%lib/minitest% #:nodoc:
|
1142
|
+
MT_RE = %r%lib/minitest|internal:warning% #:nodoc:
|
1111
1143
|
|
1112
1144
|
attr_accessor :regexp
|
1113
1145
|
|
@@ -25,8 +25,19 @@ class Minitest::Test
|
|
25
25
|
end
|
26
26
|
end
|
27
27
|
end
|
28
|
-
end
|
29
28
|
|
29
|
+
def error_on_warn?
|
30
|
+
defined?(Minitest::ErrorOnWarning)
|
31
|
+
end
|
32
|
+
|
33
|
+
def assert_deprecation re = /DEPRECATED/
|
34
|
+
assert_output "", re do
|
35
|
+
yield
|
36
|
+
end
|
37
|
+
rescue Minitest::UnexpectedWarning => e # raised if -Werror was used
|
38
|
+
assert_match re, e.message
|
39
|
+
end
|
40
|
+
end
|
30
41
|
|
31
42
|
class FakeNamedTest < Minitest::Test
|
32
43
|
@@count = 0
|
@@ -56,7 +67,7 @@ class MetaMetaMetaTestCase < Minitest::Test
|
|
56
67
|
def run_tu_with_fresh_reporter flags = %w[--seed 42]
|
57
68
|
options = Minitest.process_args flags
|
58
69
|
|
59
|
-
@output = StringIO.new("".encode(
|
70
|
+
@output = StringIO.new("".encode(Encoding::UTF_8))
|
60
71
|
|
61
72
|
self.reporter = Minitest::CompositeReporter.new
|
62
73
|
reporter << Minitest::SummaryReporter.new(@output, options)
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# encoding: UTF-8
|
2
2
|
|
3
3
|
require "minitest/autorun"
|
4
|
+
require_relative "metametameta"
|
4
5
|
|
5
6
|
if defined? Encoding then
|
6
7
|
e = Encoding.default_external
|
@@ -33,7 +34,6 @@ class TestMinitestAssertions < Minitest::Test
|
|
33
34
|
|
34
35
|
class DummyTest
|
35
36
|
include Minitest::Assertions
|
36
|
-
# include Minitest::Reportable # TODO: why do I really need this?
|
37
37
|
|
38
38
|
attr_accessor :assertions, :failure
|
39
39
|
|
@@ -58,15 +58,6 @@ class TestMinitestAssertions < Minitest::Test
|
|
58
58
|
"expected #{@assertion_count} assertions to be fired during the test, not #{@tc.assertions}")
|
59
59
|
end
|
60
60
|
|
61
|
-
def assert_deprecated name
|
62
|
-
dep = /DEPRECATED: #{name}. From #{__FILE__}:\d+(?::.*)?/
|
63
|
-
dep = "" if $-w.nil?
|
64
|
-
|
65
|
-
assert_output nil, dep do
|
66
|
-
yield
|
67
|
-
end
|
68
|
-
end
|
69
|
-
|
70
61
|
def assert_triggered expected, klass = Minitest::Assertion
|
71
62
|
e = assert_raises klass do
|
72
63
|
yield
|
@@ -301,7 +292,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
301
292
|
err_re = /Use assert_nil if expecting nil from .*test_minitest_\w+.rb/
|
302
293
|
err_re = "" if $-w.nil?
|
303
294
|
|
304
|
-
|
295
|
+
assert_deprecation err_re do
|
305
296
|
@tc.assert_equal nil, nil
|
306
297
|
end
|
307
298
|
end
|
@@ -379,7 +370,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
379
370
|
EOM
|
380
371
|
|
381
372
|
assert_triggered msg do
|
382
|
-
x = "bad-utf8-\xF1.txt".force_encoding
|
373
|
+
x = "bad-utf8-\xF1.txt".dup.force_encoding Encoding::ASCII
|
383
374
|
y = x.dup.force_encoding "binary" # TODO: switch to .b when 1.9 dropped
|
384
375
|
@tc.assert_equal x, y
|
385
376
|
end
|
@@ -975,16 +966,24 @@ class TestMinitestAssertions < Minitest::Test
|
|
975
966
|
end
|
976
967
|
|
977
968
|
def test_assert_send
|
978
|
-
|
969
|
+
@assertion_count = 0 if error_on_warn?
|
970
|
+
assert_deprecation(/DEPRECATED: assert_send/) do
|
979
971
|
@tc.assert_send [1, :<, 2]
|
980
972
|
end
|
981
973
|
end
|
982
974
|
|
983
975
|
def test_assert_send_bad
|
984
|
-
|
985
|
-
|
976
|
+
if error_on_warn? then
|
977
|
+
@assertion_count = 0
|
978
|
+
assert_deprecation(/DEPRECATED: assert_send/) do
|
986
979
|
@tc.assert_send [1, :>, 2]
|
987
980
|
end
|
981
|
+
else
|
982
|
+
assert_triggered "Expected 1.>(*[2]) to return true." do
|
983
|
+
assert_deprecation(/DEPRECATED: assert_send/) do
|
984
|
+
@tc.assert_send [1, :>, 2]
|
985
|
+
end
|
986
|
+
end
|
988
987
|
end
|
989
988
|
end
|
990
989
|
|
@@ -1502,7 +1501,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
1502
1501
|
d0 = Time.now
|
1503
1502
|
d1 = d0 + 86_400 # I am an idiot
|
1504
1503
|
|
1505
|
-
|
1504
|
+
assert_deprecation(/Stale skip_until \"not yet\" at .*?:\d+$/) do
|
1506
1505
|
assert_skip_until d0, "not yet"
|
1507
1506
|
end
|
1508
1507
|
|
@@ -1646,14 +1645,14 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
1646
1645
|
end
|
1647
1646
|
|
1648
1647
|
def test_mu_pp_for_diff_str_bad_encoding
|
1649
|
-
str = "\666".force_encoding Encoding::UTF_8
|
1648
|
+
str = "\666".dup.force_encoding Encoding::UTF_8
|
1650
1649
|
exp = "# encoding: UTF-8\n# valid: false\n\"\\xB6\""
|
1651
1650
|
|
1652
1651
|
assert_mu_pp_for_diff exp, str, :raw
|
1653
1652
|
end
|
1654
1653
|
|
1655
1654
|
def test_mu_pp_for_diff_str_bad_encoding_both
|
1656
|
-
str = "\666A\\n\nB".force_encoding Encoding::UTF_8
|
1655
|
+
str = "\666A\\n\nB".dup.force_encoding Encoding::UTF_8
|
1657
1656
|
exp = "# encoding: UTF-8\n# valid: false\n\"\\xB6A\\\\n\\nB\""
|
1658
1657
|
|
1659
1658
|
assert_mu_pp_for_diff exp, str, :raw
|
@@ -1700,7 +1699,7 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
1700
1699
|
end
|
1701
1700
|
|
1702
1701
|
def test_mu_pp_str_bad_encoding
|
1703
|
-
str = "\666".force_encoding Encoding::UTF_8
|
1702
|
+
str = "\666".dup.force_encoding Encoding::UTF_8
|
1704
1703
|
exp = "# encoding: UTF-8\n# valid: false\n\"\\xB6\""
|
1705
1704
|
|
1706
1705
|
assert_mu_pp exp, str, :raw
|
@@ -423,10 +423,12 @@ class TestMinitestMock < Minitest::Test
|
|
423
423
|
arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
|
424
424
|
mock = Minitest::Mock.new
|
425
425
|
|
426
|
-
|
426
|
+
assert_deprecation(/Using MT_KWARGS_HAC. yet passing kwargs/) do
|
427
427
|
mock.expect :foo, nil, [{}], k1: arg1, k2: arg2, k3: arg3
|
428
428
|
end
|
429
429
|
|
430
|
+
skip "-Werror" if error_on_warn? # mock above raised, so this is dead
|
431
|
+
|
430
432
|
mock.foo({}, k1: arg1, k2: arg2, k3: arg3)
|
431
433
|
|
432
434
|
assert_mock mock
|
@@ -686,7 +688,7 @@ class TestMinitestStub < Minitest::Test
|
|
686
688
|
end
|
687
689
|
|
688
690
|
def test_stub_yield_self
|
689
|
-
obj = "foo"
|
691
|
+
obj = +"foo"
|
690
692
|
|
691
693
|
val = obj.stub :to_s, "bar" do |s|
|
692
694
|
s.to_s
|
@@ -816,7 +818,7 @@ class TestMinitestStub < Minitest::Test
|
|
816
818
|
# [:value, :block_call, :args] => N/A
|
817
819
|
|
818
820
|
class Bar
|
819
|
-
def call
|
821
|
+
def call(&_) # to ignore unused block
|
820
822
|
puts "hi"
|
821
823
|
end
|
822
824
|
end
|
@@ -956,7 +958,7 @@ class TestMinitestStub < Minitest::Test
|
|
956
958
|
def test_stub_lambda_block_call_5
|
957
959
|
@assertion_count += 1
|
958
960
|
rs = nil
|
959
|
-
io = StringIO.new
|
961
|
+
io = StringIO.new(+"", "w")
|
960
962
|
File.stub5 :open, lambda { |p, m, &blk| blk and blk.call io } do
|
961
963
|
File.open "foo.txt", "r" do |f|
|
962
964
|
rs = f && f.write("woot")
|
@@ -971,7 +973,7 @@ class TestMinitestStub < Minitest::Test
|
|
971
973
|
|
972
974
|
@assertion_count += 1
|
973
975
|
rs = nil
|
974
|
-
io = StringIO.new
|
976
|
+
io = StringIO.new(+"", "w")
|
975
977
|
File.stub6 :open, lambda { |p, m, &blk| blk.call io } do
|
976
978
|
File.open "foo.txt", "r" do |f|
|
977
979
|
rs = f.write("woot")
|
@@ -984,7 +986,7 @@ class TestMinitestStub < Minitest::Test
|
|
984
986
|
def test_stub_lambda_block_call_args_5
|
985
987
|
@assertion_count += 1
|
986
988
|
rs = nil
|
987
|
-
io = StringIO.new
|
989
|
+
io = StringIO.new(+"", "w")
|
988
990
|
File.stub5(:open, lambda { |p, m, &blk| blk and blk.call io }, :WTF?) do
|
989
991
|
File.open "foo.txt", "r" do |f|
|
990
992
|
rs = f.write("woot")
|
@@ -999,7 +1001,7 @@ class TestMinitestStub < Minitest::Test
|
|
999
1001
|
|
1000
1002
|
@assertion_count += 1
|
1001
1003
|
rs = nil
|
1002
|
-
io = StringIO.new
|
1004
|
+
io = StringIO.new(+"", "w")
|
1003
1005
|
File.stub6(:open, lambda { |p, m, &blk| blk.call io }, :WTF?) do
|
1004
1006
|
File.open "foo.txt", "r" do |f|
|
1005
1007
|
rs = f.write("woot")
|
@@ -1014,7 +1016,7 @@ class TestMinitestStub < Minitest::Test
|
|
1014
1016
|
|
1015
1017
|
@assertion_count += 2
|
1016
1018
|
rs = nil
|
1017
|
-
io = StringIO.new
|
1019
|
+
io = StringIO.new(+"", "w")
|
1018
1020
|
@tc.assert_raises ArgumentError do
|
1019
1021
|
File.stub6_2(:open, lambda { |p, m, &blk| blk.call io }, :WTF?) do
|
1020
1022
|
File.open "foo.txt", "r" do |f|
|
@@ -1064,7 +1066,7 @@ class TestMinitestStub < Minitest::Test
|
|
1064
1066
|
def test_stub_value_block_args_5
|
1065
1067
|
@assertion_count += 2
|
1066
1068
|
rs = nil
|
1067
|
-
io = StringIO.new
|
1069
|
+
io = StringIO.new(+"", "w")
|
1068
1070
|
File.stub5 :open, :value, io do
|
1069
1071
|
result = File.open "foo.txt", "r" do |f|
|
1070
1072
|
rs = f.write("woot")
|
@@ -1092,7 +1094,7 @@ class TestMinitestStub < Minitest::Test
|
|
1092
1094
|
|
1093
1095
|
@assertion_count += 2
|
1094
1096
|
rs = nil
|
1095
|
-
io = StringIO.new
|
1097
|
+
io = StringIO.new(+"", "w")
|
1096
1098
|
assert_deprecated do
|
1097
1099
|
File.stub6 :open, :value, io do
|
1098
1100
|
result = File.open "foo.txt", "r" do |f|
|
@@ -1110,7 +1112,7 @@ class TestMinitestStub < Minitest::Test
|
|
1110
1112
|
|
1111
1113
|
@assertion_count += 2
|
1112
1114
|
rs = nil
|
1113
|
-
io = StringIO.new
|
1115
|
+
io = StringIO.new(+"", "w")
|
1114
1116
|
@tc.assert_raises ArgumentError do
|
1115
1117
|
File.stub6_2 :open, :value, io do
|
1116
1118
|
result = File.open "foo.txt", "r" do |f|
|
@@ -284,18 +284,14 @@ describe Minitest::Spec do
|
|
284
284
|
end
|
285
285
|
|
286
286
|
it "needs to warn on equality with nil" do
|
287
|
-
@assertion_count
|
287
|
+
@assertion_count = 3
|
288
|
+
@assertion_count += 2 unless error_on_warn? # 2 extra assertions
|
289
|
+
|
290
|
+
exp = /DEPRECATED: Use assert_nil if expecting nil from .* This will fail in Minitest 6./
|
288
291
|
|
289
|
-
|
292
|
+
assert_deprecation exp do
|
290
293
|
assert_success _(nil).must_equal(nil)
|
291
294
|
end
|
292
|
-
|
293
|
-
exp = "DEPRECATED: Use assert_nil if expecting nil from #{__FILE__}:#{__LINE__-3}. " \
|
294
|
-
"This will fail in Minitest 6.\n"
|
295
|
-
exp = "" if $-w.nil?
|
296
|
-
|
297
|
-
assert_empty out
|
298
|
-
assert_equal exp, err
|
299
295
|
end
|
300
296
|
|
301
297
|
it "needs to verify floats outside a delta" do
|
@@ -576,7 +572,8 @@ describe Minitest::Spec do
|
|
576
572
|
|
577
573
|
it "can NOT use must_equal in a thread. It must use expect in a thread" do
|
578
574
|
skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
|
579
|
-
|
575
|
+
|
576
|
+
assert_raises RuntimeError, Minitest::UnexpectedWarning do
|
580
577
|
capture_io do
|
581
578
|
Thread.new { (1 + 1).must_equal 2 }.join
|
582
579
|
end
|
@@ -586,9 +583,9 @@ describe Minitest::Spec do
|
|
586
583
|
it "fails gracefully when expectation used outside of `it`" do
|
587
584
|
skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
|
588
585
|
|
589
|
-
@assertion_count +=
|
586
|
+
@assertion_count += 2 # assert_match is compound
|
590
587
|
|
591
|
-
e = assert_raises RuntimeError do
|
588
|
+
e = assert_raises RuntimeError, Minitest::UnexpectedWarning do
|
592
589
|
capture_io do
|
593
590
|
Thread.new { # forces ctx to be nil
|
594
591
|
describe("woot") do
|
@@ -598,17 +595,21 @@ describe Minitest::Spec do
|
|
598
595
|
end
|
599
596
|
end
|
600
597
|
|
601
|
-
|
598
|
+
exp = "Calling #must_equal outside of test."
|
599
|
+
exp = "DEPRECATED: global use of must_equal from" if error_on_warn?
|
600
|
+
|
601
|
+
assert_match exp, e.message
|
602
602
|
end
|
603
603
|
|
604
604
|
it "deprecates expectation used without _" do
|
605
605
|
skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
|
606
606
|
|
607
|
-
@assertion_count +=
|
607
|
+
@assertion_count += 1
|
608
|
+
@assertion_count += 2 unless error_on_warn?
|
608
609
|
|
609
610
|
exp = /DEPRECATED: global use of must_equal from/
|
610
611
|
|
611
|
-
|
612
|
+
assert_deprecation exp do
|
612
613
|
(1 + 1).must_equal 2
|
613
614
|
end
|
614
615
|
end
|
@@ -618,12 +619,13 @@ describe Minitest::Spec do
|
|
618
619
|
it "deprecates expectation used without _ with empty backtrace_filter" do
|
619
620
|
skip "N/A" if ENV["MT_NO_EXPECTATIONS"]
|
620
621
|
|
621
|
-
@assertion_count +=
|
622
|
+
@assertion_count += 1
|
623
|
+
@assertion_count += 2 unless error_on_warn?
|
622
624
|
|
623
625
|
exp = /DEPRECATED: global use of must_equal from/
|
624
626
|
|
625
627
|
with_empty_backtrace_filter do
|
626
|
-
|
628
|
+
assert_deprecation exp do
|
627
629
|
(1 + 1).must_equal 2
|
628
630
|
end
|
629
631
|
end
|
@@ -94,7 +94,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def test_this_is_non_ascii_failure_message
|
97
|
-
fail 'ЁЁЁ'.force_encoding(
|
97
|
+
fail 'ЁЁЁ'.dup.force_encoding(Encoding::BINARY)
|
98
98
|
end
|
99
99
|
end
|
100
100
|
|
@@ -1126,19 +1126,19 @@ class TestMinitestGuard < Minitest::Test
|
|
1126
1126
|
end
|
1127
1127
|
|
1128
1128
|
def test_rubinius_eh
|
1129
|
-
|
1129
|
+
assert_deprecation do
|
1130
1130
|
assert self.class.rubinius? "rbx"
|
1131
1131
|
end
|
1132
|
-
|
1132
|
+
assert_deprecation do
|
1133
1133
|
assert self.rubinius? "rbx"
|
1134
1134
|
end
|
1135
1135
|
end
|
1136
1136
|
|
1137
1137
|
def test_maglev_eh
|
1138
|
-
|
1138
|
+
assert_deprecation do
|
1139
1139
|
assert self.class.maglev? "maglev"
|
1140
1140
|
end
|
1141
|
-
|
1141
|
+
assert_deprecation do
|
1142
1142
|
assert self.maglev? "maglev"
|
1143
1143
|
end
|
1144
1144
|
end
|
data.tar.gz.sig
CHANGED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: minitest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.
|
4
|
+
version: 5.23.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -29,7 +29,7 @@ cert_chain:
|
|
29
29
|
S7043fq9EbQdBr2AXdj92+CDwuTfHI6/Hj5FVBDULufrJaan4xUgL70Hvc6pTTeW
|
30
30
|
deKfBjgVAq7EYHu1AczzlUly
|
31
31
|
-----END CERTIFICATE-----
|
32
|
-
date: 2024-
|
32
|
+
date: 2024-05-22 00:00:00.000000000 Z
|
33
33
|
dependencies:
|
34
34
|
- !ruby/object:Gem::Dependency
|
35
35
|
name: rdoc
|
@@ -140,8 +140,10 @@ files:
|
|
140
140
|
- lib/minitest/autorun.rb
|
141
141
|
- lib/minitest/benchmark.rb
|
142
142
|
- lib/minitest/compress.rb
|
143
|
+
- lib/minitest/error_on_warning.rb
|
143
144
|
- lib/minitest/expectations.rb
|
144
145
|
- lib/minitest/hell.rb
|
146
|
+
- lib/minitest/manual_plugins.rb
|
145
147
|
- lib/minitest/mock.rb
|
146
148
|
- lib/minitest/parallel.rb
|
147
149
|
- lib/minitest/pride.rb
|
metadata.gz.sig
CHANGED
Binary file
|