minitest 5.24.0 → 5.25.0
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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/History.rdoc +21 -0
- data/lib/hoe/minitest.rb +2 -1
- data/lib/minitest/assertions.rb +64 -69
- data/lib/minitest/benchmark.rb +6 -9
- data/lib/minitest/compress.rb +10 -10
- data/lib/minitest/error_on_warning.rb +3 -3
- data/lib/minitest/mock.rb +13 -13
- data/lib/minitest/parallel.rb +4 -4
- data/lib/minitest/pride_plugin.rb +10 -14
- data/lib/minitest/spec.rb +5 -5
- data/lib/minitest/test.rb +10 -22
- data/lib/minitest/test_task.rb +9 -9
- data/lib/minitest.rb +61 -54
- data/test/minitest/metametameta.rb +6 -9
- data/test/minitest/test_minitest_assertions.rb +113 -113
- data/test/minitest/test_minitest_benchmark.rb +1 -1
- data/test/minitest/test_minitest_mock.rb +67 -64
- data/test/minitest/test_minitest_reporter.rb +11 -15
- data/test/minitest/test_minitest_spec.rb +35 -38
- data/test/minitest/test_minitest_test.rb +80 -99
- data/test/minitest/test_minitest_test_task.rb +11 -8
- data.tar.gz.sig +0 -0
- metadata +3 -3
- metadata.gz.sig +0 -0
@@ -1,18 +1,14 @@
|
|
1
|
-
# encoding: UTF-8
|
2
|
-
|
3
1
|
require "minitest/autorun"
|
4
2
|
require_relative "metametameta"
|
5
3
|
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
warn ""
|
15
|
-
end
|
4
|
+
e = Encoding.default_external
|
5
|
+
if e != Encoding::UTF_8 then
|
6
|
+
warn ""
|
7
|
+
warn ""
|
8
|
+
warn "NOTE: External encoding #{e} is not UTF-8. Tests WILL fail."
|
9
|
+
warn " Run tests with `RUBYOPT=-Eutf-8 rake` to avoid errors."
|
10
|
+
warn ""
|
11
|
+
warn ""
|
16
12
|
end
|
17
13
|
|
18
14
|
SomeError = Class.new Exception
|
@@ -27,8 +23,6 @@ class TestMinitestAssertions < Minitest::Test
|
|
27
23
|
# which is not threadsafe. Nearly every method in here is an
|
28
24
|
# assertion test so it isn't worth splitting it out further.
|
29
25
|
|
30
|
-
RUBY18 = !defined? Encoding
|
31
|
-
|
32
26
|
# not included in JRuby
|
33
27
|
RE_LEVELS = /\(\d+ levels\) /
|
34
28
|
|
@@ -79,10 +73,6 @@ class TestMinitestAssertions < Minitest::Test
|
|
79
73
|
end
|
80
74
|
end
|
81
75
|
|
82
|
-
def clean s
|
83
|
-
s.gsub(/^ {6,10}/, "")
|
84
|
-
end
|
85
|
-
|
86
76
|
def non_verbose
|
87
77
|
orig_verbose = $VERBOSE
|
88
78
|
$VERBOSE = false
|
@@ -135,36 +125,43 @@ class TestMinitestAssertions < Minitest::Test
|
|
135
125
|
end
|
136
126
|
|
137
127
|
def test_assert_equal_different_collection_array_hex_invisible
|
138
|
-
|
139
|
-
|
140
|
-
msg =
|
128
|
+
exp = Object.new
|
129
|
+
act = Object.new
|
130
|
+
msg = <<~EOM.chomp
|
131
|
+
No visible difference in the Array#inspect output.
|
141
132
|
You should look at the implementation of #== on Array or its members.
|
142
|
-
[#<Object:0xXXXXXX>]
|
133
|
+
[#<Object:0xXXXXXX>]
|
134
|
+
EOM
|
143
135
|
assert_triggered msg do
|
144
|
-
@tc.assert_equal [
|
136
|
+
@tc.assert_equal [exp], [act]
|
145
137
|
end
|
146
138
|
end
|
147
139
|
|
148
140
|
def test_assert_equal_different_collection_hash_hex_invisible
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
141
|
+
exp, act = {}, {}
|
142
|
+
exp[1] = Object.new
|
143
|
+
act[1] = Object.new
|
144
|
+
act_obj = act[1]
|
145
|
+
# TODO: switch to endless when 2.7 is dropped
|
146
|
+
act_obj.define_singleton_method(:inspect) { "#<Object:0xXXXXXX>" }
|
147
|
+
msg = <<~EOM.chomp % [act]
|
148
|
+
No visible difference in the Hash#inspect output.
|
153
149
|
You should look at the implementation of #== on Hash or its members.
|
154
|
-
|
150
|
+
%p
|
151
|
+
EOM
|
155
152
|
|
156
153
|
assert_triggered msg do
|
157
|
-
@tc.assert_equal
|
154
|
+
@tc.assert_equal exp, act
|
158
155
|
end
|
159
156
|
end
|
160
157
|
|
161
158
|
def test_assert_equal_different_diff_deactivated
|
162
159
|
without_diff do
|
163
160
|
assert_triggered util_msg("haha" * 10, "blah" * 10) do
|
164
|
-
|
165
|
-
|
161
|
+
exp = "haha" * 10
|
162
|
+
act = "blah" * 10
|
166
163
|
|
167
|
-
@tc.assert_equal
|
164
|
+
@tc.assert_equal exp, act
|
168
165
|
end
|
169
166
|
end
|
170
167
|
end
|
@@ -186,78 +183,84 @@ class TestMinitestAssertions < Minitest::Test
|
|
186
183
|
def initialize s; @name = s; end
|
187
184
|
end
|
188
185
|
|
189
|
-
|
190
|
-
|
191
|
-
msg =
|
186
|
+
exp = c.new "a"
|
187
|
+
act = c.new "b"
|
188
|
+
msg = <<~EOS
|
192
189
|
--- expected
|
193
190
|
+++ actual
|
194
191
|
@@ -1 +1 @@
|
195
|
-
-#<#<Class:0xXXXXXX>:0xXXXXXX @name
|
196
|
-
+#<#<Class:0xXXXXXX>:0xXXXXXX @name
|
192
|
+
-#<#<Class:0xXXXXXX>:0xXXXXXX @name="a">
|
193
|
+
+#<#<Class:0xXXXXXX>:0xXXXXXX @name="b">
|
197
194
|
EOS
|
198
195
|
|
199
196
|
assert_triggered msg do
|
200
|
-
@tc.assert_equal
|
197
|
+
@tc.assert_equal exp, act
|
201
198
|
end
|
202
199
|
end
|
203
200
|
|
204
201
|
def test_assert_equal_different_hex_invisible
|
205
|
-
|
206
|
-
|
202
|
+
exp = Object.new
|
203
|
+
act = Object.new
|
207
204
|
|
208
|
-
msg =
|
205
|
+
msg = <<~EOM.chomp
|
206
|
+
No visible difference in the Object#inspect output.
|
209
207
|
You should look at the implementation of #== on Object or its members.
|
210
|
-
#<Object:0xXXXXXX>
|
208
|
+
#<Object:0xXXXXXX>
|
209
|
+
EOM
|
211
210
|
|
212
211
|
assert_triggered msg do
|
213
|
-
@tc.assert_equal
|
212
|
+
@tc.assert_equal exp, act
|
214
213
|
end
|
215
214
|
end
|
216
215
|
|
217
216
|
def test_assert_equal_different_long
|
218
|
-
msg =
|
217
|
+
msg = <<~EOM
|
218
|
+
--- expected
|
219
219
|
+++ actual
|
220
220
|
@@ -1 +1 @@
|
221
|
-
|
222
|
-
|
223
|
-
|
221
|
+
-"hahahahahahahahahahahahahahahahahahahaha"
|
222
|
+
+"blahblahblahblahblahblahblahblahblahblah"
|
223
|
+
EOM
|
224
224
|
|
225
225
|
assert_triggered msg do
|
226
|
-
|
227
|
-
|
226
|
+
exp = "haha" * 10
|
227
|
+
act = "blah" * 10
|
228
228
|
|
229
|
-
@tc.assert_equal
|
229
|
+
@tc.assert_equal exp, act
|
230
230
|
end
|
231
231
|
end
|
232
232
|
|
233
233
|
def test_assert_equal_different_long_invisible
|
234
|
-
msg =
|
234
|
+
msg = <<~EOM.chomp
|
235
|
+
No visible difference in the String#inspect output.
|
235
236
|
You should look at the implementation of #== on String or its members.
|
236
|
-
|
237
|
+
"blahblahblahblahblahblahblahblahblahblah"
|
238
|
+
EOM
|
237
239
|
|
238
240
|
assert_triggered msg do
|
239
|
-
|
240
|
-
|
241
|
-
def
|
241
|
+
exp = "blah" * 10
|
242
|
+
act = "blah" * 10
|
243
|
+
def exp.== _
|
242
244
|
false
|
243
245
|
end
|
244
|
-
@tc.assert_equal
|
246
|
+
@tc.assert_equal exp, act
|
245
247
|
end
|
246
248
|
end
|
247
249
|
|
248
250
|
def test_assert_equal_different_long_msg
|
249
|
-
msg =
|
251
|
+
msg = <<~EOM
|
252
|
+
message.
|
250
253
|
--- expected
|
251
254
|
+++ actual
|
252
255
|
@@ -1 +1 @@
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
+
-"hahahahahahahahahahahahahahahahahahahaha"
|
257
|
+
+"blahblahblahblahblahblahblahblahblahblah"
|
258
|
+
EOM
|
256
259
|
|
257
260
|
assert_triggered msg do
|
258
|
-
|
259
|
-
|
260
|
-
@tc.assert_equal
|
261
|
+
exp = "haha" * 10
|
262
|
+
act = "blah" * 10
|
263
|
+
@tc.assert_equal exp, act, "message"
|
261
264
|
end
|
262
265
|
end
|
263
266
|
|
@@ -281,7 +284,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
281
284
|
end
|
282
285
|
|
283
286
|
def test_assert_equal_does_not_allow_lhs_nil
|
284
|
-
if Minitest::VERSION
|
287
|
+
if Minitest::VERSION >= "6" then
|
285
288
|
warn "Time to strip the MT5 test"
|
286
289
|
|
287
290
|
@assertion_count += 1
|
@@ -305,29 +308,23 @@ class TestMinitestAssertions < Minitest::Test
|
|
305
308
|
end
|
306
309
|
|
307
310
|
def test_assert_equal_string_bug791
|
308
|
-
exp =
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
-"\\n
|
313
|
-
-"
|
314
|
-
+"\\\"
|
315
|
-
EOF
|
316
|
-
|
317
|
-
exp = "Expected: \"\\\\n\"\n Actual: \"\\\\\""
|
311
|
+
exp = <<~EOM.chomp
|
312
|
+
Expected: "\\\\n"
|
313
|
+
Actual: "\\\\"
|
314
|
+
EOM
|
318
315
|
assert_triggered exp do
|
319
316
|
@tc.assert_equal "\\n", "\\"
|
320
317
|
end
|
321
318
|
end
|
322
319
|
|
323
320
|
def test_assert_equal_string_both_escaped_unescaped_newlines
|
324
|
-
msg =
|
321
|
+
msg = <<~EOM
|
325
322
|
--- expected
|
326
323
|
+++ actual
|
327
324
|
@@ -1,2 +1 @@
|
328
|
-
|
329
|
-
-B
|
330
|
-
|
325
|
+
-"A\\n
|
326
|
+
-B"
|
327
|
+
+"A\\n\\\\nB"
|
331
328
|
EOM
|
332
329
|
|
333
330
|
assert_triggered msg do
|
@@ -339,7 +336,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
339
336
|
end
|
340
337
|
|
341
338
|
def test_assert_equal_string_encodings
|
342
|
-
msg =
|
339
|
+
msg = <<~EOM
|
343
340
|
--- expected
|
344
341
|
+++ actual
|
345
342
|
@@ -1,3 +1,3 @@
|
@@ -351,14 +348,14 @@ class TestMinitestAssertions < Minitest::Test
|
|
351
348
|
EOM
|
352
349
|
|
353
350
|
assert_triggered msg do
|
354
|
-
|
355
|
-
|
356
|
-
@tc.assert_equal
|
351
|
+
exp = "bad-utf8-\xF1.txt"
|
352
|
+
act = exp.dup.b
|
353
|
+
@tc.assert_equal exp, act
|
357
354
|
end
|
358
|
-
end
|
355
|
+
end
|
359
356
|
|
360
357
|
def test_assert_equal_string_encodings_both_different
|
361
|
-
msg =
|
358
|
+
msg = <<~EOM
|
362
359
|
--- expected
|
363
360
|
+++ actual
|
364
361
|
@@ -1,3 +1,3 @@
|
@@ -370,14 +367,14 @@ class TestMinitestAssertions < Minitest::Test
|
|
370
367
|
EOM
|
371
368
|
|
372
369
|
assert_triggered msg do
|
373
|
-
|
374
|
-
|
375
|
-
@tc.assert_equal
|
370
|
+
exp = "bad-utf8-\xF1.txt".dup.force_encoding Encoding::ASCII
|
371
|
+
act = exp.dup.b
|
372
|
+
@tc.assert_equal exp, act
|
376
373
|
end
|
377
|
-
end
|
374
|
+
end
|
378
375
|
|
379
376
|
def test_assert_equal_unescape_newlines
|
380
|
-
msg =
|
377
|
+
msg = <<~'EOM' # NOTE single quotes on heredoc
|
381
378
|
--- expected
|
382
379
|
+++ actual
|
383
380
|
@@ -1,2 +1,2 @@
|
@@ -429,7 +426,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
429
426
|
end
|
430
427
|
|
431
428
|
def test_assert_in_epsilon_triggered_negative_case
|
432
|
-
x =
|
429
|
+
x = "0.100000xxx"
|
433
430
|
y = "0.1"
|
434
431
|
assert_triggered "Expected |-1.1 - -1| (#{x}) to be <= #{y}." do
|
435
432
|
@tc.assert_in_epsilon(-1.1, -1, 0.1)
|
@@ -719,6 +716,7 @@ class TestMinitestAssertions < Minitest::Test
|
|
719
716
|
end
|
720
717
|
end
|
721
718
|
end
|
719
|
+
|
722
720
|
def test_assert_predicate
|
723
721
|
@tc.assert_predicate "", :empty?
|
724
722
|
end
|
@@ -748,17 +746,17 @@ class TestMinitestAssertions < Minitest::Test
|
|
748
746
|
end
|
749
747
|
end
|
750
748
|
|
751
|
-
expected =
|
749
|
+
expected = <<~EOM.chomp
|
752
750
|
[StandardError] exception expected, not
|
753
751
|
Class: <SomeError>
|
754
|
-
Message:
|
752
|
+
Message: <"blah">
|
755
753
|
---Backtrace---
|
756
|
-
FILE:LINE:in
|
754
|
+
FILE:LINE:in 'block in test_assert_raises_default_triggered'
|
757
755
|
---------------
|
758
756
|
EOM
|
759
757
|
|
760
758
|
actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
|
761
|
-
actual.gsub!
|
759
|
+
actual.gsub! RE_LEVELS, "" unless jruby?
|
762
760
|
actual.gsub!(/[`']block in (?:TestMinitestAssertions#)?/, "'block in ")
|
763
761
|
|
764
762
|
assert_equal expected, actual
|
@@ -828,17 +826,17 @@ class TestMinitestAssertions < Minitest::Test
|
|
828
826
|
end
|
829
827
|
end
|
830
828
|
|
831
|
-
expected =
|
829
|
+
expected = <<~EOM
|
832
830
|
[SomeError] exception expected, not
|
833
831
|
Class: <AnError>
|
834
|
-
Message:
|
832
|
+
Message: <"some message">
|
835
833
|
---Backtrace---
|
836
|
-
FILE:LINE:in
|
834
|
+
FILE:LINE:in 'block in test_assert_raises_subclass_triggered'
|
837
835
|
---------------
|
838
836
|
EOM
|
839
837
|
|
840
838
|
actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
|
841
|
-
actual.gsub!
|
839
|
+
actual.gsub! RE_LEVELS, "" unless jruby?
|
842
840
|
actual.gsub!(/[`']block in (?:TestMinitestAssertions#)?/, "'block in ")
|
843
841
|
|
844
842
|
assert_equal expected.chomp, actual
|
@@ -851,17 +849,17 @@ class TestMinitestAssertions < Minitest::Test
|
|
851
849
|
end
|
852
850
|
end
|
853
851
|
|
854
|
-
expected =
|
852
|
+
expected = <<~EOM.chomp
|
855
853
|
[RuntimeError] exception expected, not
|
856
854
|
Class: <SyntaxError>
|
857
|
-
Message:
|
855
|
+
Message: <"icky">
|
858
856
|
---Backtrace---
|
859
|
-
FILE:LINE:in
|
857
|
+
FILE:LINE:in 'block in test_assert_raises_triggered_different'
|
860
858
|
---------------
|
861
859
|
EOM
|
862
860
|
|
863
861
|
actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
|
864
|
-
actual.gsub!
|
862
|
+
actual.gsub! RE_LEVELS, "" unless jruby?
|
865
863
|
actual.gsub!(/[`']block in (?:TestMinitestAssertions#)?/, "'block in ")
|
866
864
|
|
867
865
|
assert_equal expected, actual
|
@@ -874,18 +872,18 @@ class TestMinitestAssertions < Minitest::Test
|
|
874
872
|
end
|
875
873
|
end
|
876
874
|
|
877
|
-
expected =
|
875
|
+
expected = <<~EOM
|
878
876
|
XXX.
|
879
877
|
[RuntimeError] exception expected, not
|
880
878
|
Class: <SyntaxError>
|
881
|
-
Message:
|
879
|
+
Message: <"icky">
|
882
880
|
---Backtrace---
|
883
|
-
FILE:LINE:in
|
881
|
+
FILE:LINE:in 'block in test_assert_raises_triggered_different_msg'
|
884
882
|
---------------
|
885
883
|
EOM
|
886
884
|
|
887
885
|
actual = e.message.gsub(/^.+:\d+/, "FILE:LINE")
|
888
|
-
actual.gsub!
|
886
|
+
actual.gsub! RE_LEVELS, "" unless jruby?
|
889
887
|
actual.gsub!(/[`']block in (?:TestMinitestAssertions#)?/, "'block in ")
|
890
888
|
|
891
889
|
assert_equal expected.chomp, actual
|
@@ -1154,8 +1152,8 @@ class TestMinitestAssertions < Minitest::Test
|
|
1154
1152
|
|
1155
1153
|
non_verbose do
|
1156
1154
|
out, err = capture_subprocess_io do
|
1157
|
-
system
|
1158
|
-
system
|
1155
|
+
system "echo hi"
|
1156
|
+
system "echo bye! 1>&2"
|
1159
1157
|
end
|
1160
1158
|
|
1161
1159
|
assert_equal "hi\n", out
|
@@ -1548,9 +1546,11 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
1548
1546
|
end
|
1549
1547
|
|
1550
1548
|
def test_diff_equal
|
1551
|
-
msg =
|
1549
|
+
msg = <<~EOM.chomp
|
1550
|
+
No visible difference in the String#inspect output.
|
1552
1551
|
You should look at the implementation of #== on String or its members.
|
1553
|
-
|
1552
|
+
"blahblahblahblahblahblahblahblahblahblah"
|
1553
|
+
EOM
|
1554
1554
|
|
1555
1555
|
o1 = "blah" * 10
|
1556
1556
|
o2 = "blah" * 10
|
@@ -1562,7 +1562,7 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
1562
1562
|
end
|
1563
1563
|
|
1564
1564
|
def test_diff_str_mixed
|
1565
|
-
msg =
|
1565
|
+
msg = <<~'EOM' # NOTE single quotes on heredoc
|
1566
1566
|
--- expected
|
1567
1567
|
+++ actual
|
1568
1568
|
@@ -1 +1 @@
|
@@ -1577,7 +1577,7 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
1577
1577
|
end
|
1578
1578
|
|
1579
1579
|
def test_diff_str_multiline
|
1580
|
-
msg =
|
1580
|
+
msg = <<~EOM
|
1581
1581
|
--- expected
|
1582
1582
|
+++ actual
|
1583
1583
|
@@ -1,2 +1,2 @@
|
@@ -1593,7 +1593,7 @@ class TestMinitestAssertionHelpers < Minitest::Test
|
|
1593
1593
|
end
|
1594
1594
|
|
1595
1595
|
def test_diff_str_simple
|
1596
|
-
msg =
|
1596
|
+
msg = <<~EOM.chomp
|
1597
1597
|
Expected: "A"
|
1598
1598
|
Actual: "B"
|
1599
1599
|
EOM
|