minitest 5.20.0 → 5.25.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -10,8 +10,9 @@ end
10
10
 
11
11
  class TestMinitestMock < Minitest::Test
12
12
  def setup
13
- @mock = Minitest::Mock.new.expect(:foo, nil)
14
- @mock.expect(:meaning_of_life, 42)
13
+ @mock = Minitest::Mock.new
14
+ .expect(:foo, nil)
15
+ .expect(:meaning_of_life, 42)
15
16
  end
16
17
 
17
18
  def test_create_stub_method
@@ -36,14 +37,14 @@ class TestMinitestMock < Minitest::Test
36
37
  end
37
38
 
38
39
  def test_allow_expectations_to_be_added_after_creation
39
- @mock.expect(:bar, true)
40
+ @mock.expect :bar, true
40
41
  assert @mock.bar
41
42
  end
42
43
 
43
44
  def test_not_verify_if_new_expected_method_is_not_called
44
45
  @mock.foo
45
46
  @mock.meaning_of_life
46
- @mock.expect(:bar, true)
47
+ @mock.expect :bar, true
47
48
 
48
49
  util_verify_bad "expected bar() => true"
49
50
  end
@@ -51,7 +52,7 @@ class TestMinitestMock < Minitest::Test
51
52
  def test_blow_up_on_wrong_number_of_arguments
52
53
  @mock.foo
53
54
  @mock.meaning_of_life
54
- @mock.expect(:sum, 3, [1, 2])
55
+ @mock.expect :sum, 3, [1, 2]
55
56
 
56
57
  e = assert_raises ArgumentError do
57
58
  @mock.sum
@@ -63,7 +64,7 @@ class TestMinitestMock < Minitest::Test
63
64
  def test_return_mock_does_not_raise
64
65
  retval = Minitest::Mock.new
65
66
  mock = Minitest::Mock.new
66
- mock.expect(:foo, retval)
67
+ mock.expect :foo, retval
67
68
  mock.foo
68
69
 
69
70
  assert_mock mock
@@ -72,8 +73,8 @@ class TestMinitestMock < Minitest::Test
72
73
  def test_mock_args_does_not_raise
73
74
  arg = Minitest::Mock.new
74
75
  mock = Minitest::Mock.new
75
- mock.expect(:foo, nil, [arg])
76
- mock.foo(arg)
76
+ mock.expect :foo, nil, [arg]
77
+ mock.foo arg
77
78
 
78
79
  assert_mock mock
79
80
  end
@@ -113,8 +114,6 @@ class TestMinitestMock < Minitest::Test
113
114
  end
114
115
 
115
116
  def test_expectations_can_be_satisfied_via_public_send
116
- skip "Doesn't run on 1.8" if RUBY_VERSION < "1.9"
117
-
118
117
  @mock.public_send :foo
119
118
  @mock.public_send :meaning_of_life
120
119
 
@@ -124,10 +123,10 @@ class TestMinitestMock < Minitest::Test
124
123
  def test_blow_up_on_wrong_arguments
125
124
  @mock.foo
126
125
  @mock.meaning_of_life
127
- @mock.expect(:sum, 3, [1, 2])
126
+ @mock.expect :sum, 3, [1, 2]
128
127
 
129
128
  e = assert_raises MockExpectationError do
130
- @mock.sum(2, 4)
129
+ @mock.sum 2, 4
131
130
  end
132
131
 
133
132
  exp = "mocked method :sum called with unexpected arguments [2, 4]"
@@ -163,8 +162,8 @@ class TestMinitestMock < Minitest::Test
163
162
  a = Minitest::Mock.new
164
163
  b = Minitest::Mock.new
165
164
 
166
- a.expect(:foo, :a)
167
- b.expect(:foo, :b)
165
+ a.expect :foo, :a
166
+ b.expect :foo, :b
168
167
 
169
168
  assert_equal :a, a.foo
170
169
  assert_equal :b, b.foo
@@ -172,7 +171,7 @@ class TestMinitestMock < Minitest::Test
172
171
 
173
172
  def test_do_not_create_stub_method_on_new_mocks
174
173
  a = Minitest::Mock.new
175
- a.expect(:foo, :a)
174
+ a.expect :foo, :a
176
175
 
177
176
  assert !Minitest::Mock.new.respond_to?(:foo)
178
177
  end
@@ -181,7 +180,7 @@ class TestMinitestMock < Minitest::Test
181
180
  @mock.expect :kind_of?, true, [String]
182
181
  @mock.expect :==, true, [1]
183
182
 
184
- assert @mock.kind_of?(String), "didn't mock :kind_of\?"
183
+ assert @mock.kind_of?(String), "didn't mock :kind_of?"
185
184
  assert @mock == 1, "didn't mock :=="
186
185
  end
187
186
 
@@ -277,9 +276,10 @@ class TestMinitestMock < Minitest::Test
277
276
 
278
277
  e = assert_raises(MockExpectationError) { mock.verify }
279
278
 
280
- exp = "expected foo(:kw=>false) => nil, got [foo(:kw=>true) => nil]"
279
+ exp = "expected foo(%p) => nil, got [foo(%p) => nil]" \
280
+ % [{ :kw => false }, { :kw => true }]
281
281
 
282
- assert_equal exp, e.message
282
+ assert_equal exp.delete("{}"), e.message
283
283
  end
284
284
 
285
285
  def test_verify_passes_when_mock_block_returns_true
@@ -318,7 +318,7 @@ class TestMinitestMock < Minitest::Test
318
318
  k1 == arg1 && k2 == arg2 && k3 == arg3
319
319
  end
320
320
 
321
- mock.foo(k1: arg1, k2: arg2, k3: arg3)
321
+ mock.foo k1: arg1, k2: arg2, k3: arg3
322
322
 
323
323
  assert_mock mock
324
324
  end
@@ -331,7 +331,7 @@ class TestMinitestMock < Minitest::Test
331
331
  end
332
332
 
333
333
  e = assert_raises ArgumentError do
334
- mock.foo(k1: arg1, k2: arg2)
334
+ mock.foo k1: arg1, k2: arg2
335
335
  end
336
336
 
337
337
  # basically testing ruby ... need ? for ruby < 2.7 :(
@@ -346,7 +346,7 @@ class TestMinitestMock < Minitest::Test
346
346
  end
347
347
 
348
348
  e = assert_raises ArgumentError do
349
- mock.foo(k1: arg1, k2: arg2, k3: arg3)
349
+ mock.foo k1: arg1, k2: arg2, k3: arg3
350
350
  end
351
351
 
352
352
  # basically testing ruby ... need ? for ruby < 2.7 :(
@@ -361,10 +361,12 @@ class TestMinitestMock < Minitest::Test
361
361
  end
362
362
 
363
363
  e = assert_raises MockExpectationError do
364
- mock.foo(k1: arg1, k2: arg2, k3: :BAD!)
364
+ mock.foo k1: arg1, k2: arg2, k3: :BAD!
365
365
  end
366
366
 
367
- exp = "mocked method :foo failed block w/ [] {:k1=>:bar, :k2=>[1, 2, 3], :k3=>:BAD!}"
367
+ exp = "mocked method :foo failed block w/ [] %p" \
368
+ % [{ :k1 => :bar, :k2 => [1, 2, 3], :k3 => :BAD! }]
369
+
368
370
  assert_equal exp, e.message
369
371
  end
370
372
 
@@ -373,7 +375,7 @@ class TestMinitestMock < Minitest::Test
373
375
  mock = Minitest::Mock.new
374
376
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3
375
377
 
376
- mock.foo(k1: arg1, k2: arg2, k3: arg3)
378
+ mock.foo k1: arg1, k2: arg2, k3: arg3
377
379
 
378
380
  assert_mock mock
379
381
  end
@@ -397,10 +399,10 @@ class TestMinitestMock < Minitest::Test
397
399
  def test_mock_block_is_passed_keyword_args__args__old_style_bad
398
400
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
399
401
  mock = Minitest::Mock.new
400
- mock.expect :foo, nil, [{k1: arg1, k2: arg2, k3: arg3}]
402
+ mock.expect :foo, nil, [{ k1: arg1, k2: arg2, k3: arg3 }]
401
403
 
402
404
  e = assert_raises ArgumentError do
403
- mock.foo(k1: arg1, k2: arg2, k3: arg3)
405
+ mock.foo k1: arg1, k2: arg2, k3: arg3
404
406
  end
405
407
 
406
408
  assert_equal "mocked method :foo expects 1 arguments, got []", e.message
@@ -410,9 +412,9 @@ class TestMinitestMock < Minitest::Test
410
412
  with_kwargs_env do
411
413
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
412
414
  mock = Minitest::Mock.new
413
- mock.expect :foo, nil, [{k1: arg1, k2: arg2, k3: arg3}]
415
+ mock.expect :foo, nil, [{ k1: arg1, k2: arg2, k3: arg3 }]
414
416
 
415
- mock.foo(k1: arg1, k2: arg2, k3: arg3)
417
+ mock.foo k1: arg1, k2: arg2, k3: arg3
416
418
 
417
419
  assert_mock mock
418
420
  end
@@ -423,10 +425,12 @@ class TestMinitestMock < Minitest::Test
423
425
  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
424
426
  mock = Minitest::Mock.new
425
427
 
426
- assert_output nil, /Using MT_KWARGS_HAC. yet passing kwargs/ do
428
+ assert_deprecation(/Using MT_KWARGS_HAC. yet passing kwargs/) do
427
429
  mock.expect :foo, nil, [{}], k1: arg1, k2: arg2, k3: arg3
428
430
  end
429
431
 
432
+ skip "-Werror" if error_on_warn? # mock above raised, so this is dead
433
+
430
434
  mock.foo({}, k1: arg1, k2: arg2, k3: arg3)
431
435
 
432
436
  assert_mock mock
@@ -439,10 +443,10 @@ class TestMinitestMock < Minitest::Test
439
443
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3
440
444
 
441
445
  e = assert_raises ArgumentError do
442
- mock.foo(k1: arg1, k2: arg2)
446
+ mock.foo k1: arg1, k2: arg2
443
447
  end
444
448
 
445
- assert_equal "mocked method :foo expects 3 keyword arguments, got %p" % {k1: arg1, k2: arg2}, e.message
449
+ assert_equal "mocked method :foo expects 3 keyword arguments, got %p" % { k1: arg1, k2: arg2 }, e.message
446
450
  end
447
451
 
448
452
  def test_mock_block_is_passed_keyword_args__args_bad_extra
@@ -451,10 +455,10 @@ class TestMinitestMock < Minitest::Test
451
455
  mock.expect :foo, nil, k1: arg1, k2: arg2
452
456
 
453
457
  e = assert_raises ArgumentError do
454
- mock.foo(k1: arg1, k2: arg2, k3: arg3)
458
+ mock.foo k1: arg1, k2: arg2, k3: arg3
455
459
  end
456
460
 
457
- assert_equal "mocked method :foo expects 2 keyword arguments, got %p" % {k1: arg1, k2: arg2, k3: arg3}, e.message
461
+ assert_equal "mocked method :foo expects 2 keyword arguments, got %p" % { k1: arg1, k2: arg2, k3: arg3 }, e.message
458
462
  end
459
463
 
460
464
  def test_mock_block_is_passed_keyword_args__args_bad_key
@@ -463,7 +467,7 @@ class TestMinitestMock < Minitest::Test
463
467
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3
464
468
 
465
469
  e = assert_raises MockExpectationError do
466
- mock.foo(k1: arg1, k2: arg2, BAD: arg3)
470
+ mock.foo k1: arg1, k2: arg2, BAD: arg3
467
471
  end
468
472
 
469
473
  assert_includes e.message, "unexpected keywords [:k1, :k2, :k3]"
@@ -476,18 +480,18 @@ class TestMinitestMock < Minitest::Test
476
480
  mock.expect :foo, nil, k1: arg1, k2: arg2, k3: arg3
477
481
 
478
482
  e = assert_raises MockExpectationError do
479
- mock.foo(k1: arg1, k2: :BAD!, k3: arg3)
483
+ mock.foo k1: arg1, k2: :BAD!, k3: arg3
480
484
  end
481
485
 
482
- assert_match(/unexpected keyword arguments.* vs .*:k2=>:BAD!/, e.message)
486
+ bad = { :k2 => :BAD! }.inspect.delete "{}"
487
+ assert_match(/unexpected keyword arguments.* vs .*#{bad}/, e.message)
483
488
  end
484
489
 
485
490
  def test_mock_block_is_passed_function_block
486
491
  mock = Minitest::Mock.new
487
492
  block = proc { "bar" }
488
493
  mock.expect :foo, nil do |arg, &blk|
489
- arg == "foo" &&
490
- blk == block
494
+ arg == "foo" && blk == block
491
495
  end
492
496
  mock.foo "foo", &block
493
497
  assert_mock mock
@@ -495,8 +499,8 @@ class TestMinitestMock < Minitest::Test
495
499
 
496
500
  def test_mock_forward_keyword_arguments
497
501
  mock = Minitest::Mock.new
498
- mock.expect(:foo, nil) { |bar:| bar == 'bar' }
499
- mock.foo(bar: 'bar')
502
+ mock.expect(:foo, nil) { |bar:| bar == "bar" }
503
+ mock.foo bar: "bar"
500
504
  assert_mock mock
501
505
  end
502
506
 
@@ -515,7 +519,7 @@ class TestMinitestMock < Minitest::Test
515
519
  def test_mock_block_raises_if_args_passed
516
520
  mock = Minitest::Mock.new
517
521
 
518
- e = assert_raises(ArgumentError) do
522
+ e = assert_raises ArgumentError do
519
523
  mock.expect :foo, nil, [:a, :b, :c] do
520
524
  true
521
525
  end
@@ -529,8 +533,8 @@ class TestMinitestMock < Minitest::Test
529
533
  def test_mock_block_raises_if_kwargs_passed
530
534
  mock = Minitest::Mock.new
531
535
 
532
- e = assert_raises(ArgumentError) do
533
- mock.expect :foo, nil, kwargs:1 do
536
+ e = assert_raises ArgumentError do
537
+ mock.expect :foo, nil, kwargs: 1 do
534
538
  true
535
539
  end
536
540
  end
@@ -542,7 +546,7 @@ class TestMinitestMock < Minitest::Test
542
546
 
543
547
  def test_mock_returns_retval_when_called_with_block
544
548
  mock = Minitest::Mock.new
545
- mock.expect(:foo, 32) do
549
+ mock.expect :foo, 32 do
546
550
  true
547
551
  end
548
552
 
@@ -561,7 +565,7 @@ class TestMinitestMock < Minitest::Test
561
565
 
562
566
  def test_mock_called_via_send
563
567
  mock = Minitest::Mock.new
564
- mock.expect(:foo, true)
568
+ mock.expect :foo, true
565
569
 
566
570
  mock.send :foo
567
571
  assert_mock mock
@@ -569,7 +573,7 @@ class TestMinitestMock < Minitest::Test
569
573
 
570
574
  def test_mock_called_via___send__
571
575
  mock = Minitest::Mock.new
572
- mock.expect(:foo, true)
576
+ mock.expect :foo, true
573
577
 
574
578
  mock.__send__ :foo
575
579
  assert_mock mock
@@ -577,9 +581,9 @@ class TestMinitestMock < Minitest::Test
577
581
 
578
582
  def test_mock_called_via_send_with_args
579
583
  mock = Minitest::Mock.new
580
- mock.expect(:foo, true, [1, 2, 3])
584
+ mock.expect :foo, true, [1, 2, 3]
581
585
 
582
- mock.send(:foo, 1, 2, 3)
586
+ mock.send :foo, 1, 2, 3
583
587
  assert_mock mock
584
588
  end
585
589
 
@@ -655,7 +659,7 @@ class TestMinitestStub < Minitest::Test
655
659
  end
656
660
  end
657
661
 
658
- def test_stub_value
662
+ def test_stub_value__literal
659
663
  assert_stub 42
660
664
  end
661
665
 
@@ -686,7 +690,7 @@ class TestMinitestStub < Minitest::Test
686
690
  end
687
691
 
688
692
  def test_stub_yield_self
689
- obj = "foo"
693
+ obj = +"foo"
690
694
 
691
695
  val = obj.stub :to_s, "bar" do |s|
692
696
  s.to_s
@@ -712,7 +716,7 @@ class TestMinitestStub < Minitest::Test
712
716
  end
713
717
  end
714
718
 
715
- val = dynamic.stub(:found, true) do |s|
719
+ val = dynamic.stub :found, true do |s|
716
720
  s.found
717
721
  end
718
722
 
@@ -727,14 +731,17 @@ class TestMinitestStub < Minitest::Test
727
731
  end
728
732
  end
729
733
 
730
- exp = jruby? ? /Undefined method nope_nope_nope for '#{self.class}::Time'/ :
731
- /undefined method `nope_nope_nope' for( class)? `#{self.class}::Time'/
734
+ exp = if jruby? then
735
+ /Undefined method nope_nope_nope for '#{self.class}::Time'/
736
+ else
737
+ /undefined method [`']nope_nope_nope' for( class)? [`']#{self.class}::Time'/
738
+ end
732
739
  assert_match exp, e.message
733
740
  end
734
741
 
735
742
  def test_mock_with_yield
736
743
  mock = Minitest::Mock.new
737
- mock.expect(:write, true) do
744
+ mock.expect :write, true do
738
745
  true
739
746
  end
740
747
  rs = nil
@@ -751,7 +758,7 @@ class TestMinitestStub < Minitest::Test
751
758
  mock = Minitest::Mock.new
752
759
  rs = nil
753
760
 
754
- File.stub :open, true, mock, kw:42 do
761
+ File.stub :open, true, mock, kw: 42 do
755
762
  File.open "foo.txt", "r" do |f, kw:|
756
763
  rs = kw
757
764
  end
@@ -760,8 +767,6 @@ class TestMinitestStub < Minitest::Test
760
767
  @tc.assert_equal 42, rs
761
768
  end
762
769
 
763
- alias test_stub_value__old test_stub_value # TODO: remove/rename
764
-
765
770
  ## Permutation Sets:
766
771
 
767
772
  # [:value, :lambda]
@@ -816,7 +821,7 @@ class TestMinitestStub < Minitest::Test
816
821
  # [:value, :block_call, :args] => N/A
817
822
 
818
823
  class Bar
819
- def call
824
+ def call &_ # to ignore unused block
820
825
  puts "hi"
821
826
  end
822
827
  end
@@ -834,7 +839,7 @@ class TestMinitestStub < Minitest::Test
834
839
  end
835
840
 
836
841
  class Keywords
837
- def self.args req, kw1:, kw2:24
842
+ def self.args req, kw1:, kw2: 24
838
843
  [req, kw1, kw2]
839
844
  end
840
845
  end
@@ -848,7 +853,7 @@ class TestMinitestStub < Minitest::Test
848
853
  def test_stub__hash_as_last_real_arg
849
854
  with_kwargs_env do
850
855
  token = Object.new
851
- def token.create_with_retry u, p; raise "shouldn't see this"; end
856
+ def token.create_with_retry _u, _p; raise "shouldn't see this"; end
852
857
 
853
858
  controller = Object.new
854
859
  controller.define_singleton_method :create do |u, p|
@@ -956,7 +961,7 @@ class TestMinitestStub < Minitest::Test
956
961
  def test_stub_lambda_block_call_5
957
962
  @assertion_count += 1
958
963
  rs = nil
959
- io = StringIO.new "", "w"
964
+ io = StringIO.new(+"", "w")
960
965
  File.stub5 :open, lambda { |p, m, &blk| blk and blk.call io } do
961
966
  File.open "foo.txt", "r" do |f|
962
967
  rs = f && f.write("woot")
@@ -971,10 +976,10 @@ class TestMinitestStub < Minitest::Test
971
976
 
972
977
  @assertion_count += 1
973
978
  rs = nil
974
- io = StringIO.new "", "w"
979
+ io = StringIO.new(+"", "w")
975
980
  File.stub6 :open, lambda { |p, m, &blk| blk.call io } do
976
981
  File.open "foo.txt", "r" do |f|
977
- rs = f.write("woot")
982
+ rs = f.write "woot"
978
983
  end
979
984
  end
980
985
  @tc.assert_equal 4, rs
@@ -984,10 +989,10 @@ class TestMinitestStub < Minitest::Test
984
989
  def test_stub_lambda_block_call_args_5
985
990
  @assertion_count += 1
986
991
  rs = nil
987
- io = StringIO.new "", "w"
992
+ io = StringIO.new(+"", "w")
988
993
  File.stub5(:open, lambda { |p, m, &blk| blk and blk.call io }, :WTF?) do
989
994
  File.open "foo.txt", "r" do |f|
990
- rs = f.write("woot")
995
+ rs = f.write "woot"
991
996
  end
992
997
  end
993
998
  @tc.assert_equal 4, rs
@@ -999,10 +1004,10 @@ class TestMinitestStub < Minitest::Test
999
1004
 
1000
1005
  @assertion_count += 1
1001
1006
  rs = nil
1002
- io = StringIO.new "", "w"
1007
+ io = StringIO.new(+"", "w")
1003
1008
  File.stub6(:open, lambda { |p, m, &blk| blk.call io }, :WTF?) do
1004
1009
  File.open "foo.txt", "r" do |f|
1005
- rs = f.write("woot")
1010
+ rs = f.write "woot"
1006
1011
  end
1007
1012
  end
1008
1013
  @tc.assert_equal 4, rs
@@ -1014,11 +1019,11 @@ class TestMinitestStub < Minitest::Test
1014
1019
 
1015
1020
  @assertion_count += 2
1016
1021
  rs = nil
1017
- io = StringIO.new "", "w"
1022
+ io = StringIO.new(+"", "w")
1018
1023
  @tc.assert_raises ArgumentError do
1019
1024
  File.stub6_2(:open, lambda { |p, m, &blk| blk.call io }, :WTF?) do
1020
1025
  File.open "foo.txt", "r" do |f|
1021
- rs = f.write("woot")
1026
+ rs = f.write "woot"
1022
1027
  end
1023
1028
  end
1024
1029
  end
@@ -1064,10 +1069,10 @@ class TestMinitestStub < Minitest::Test
1064
1069
  def test_stub_value_block_args_5
1065
1070
  @assertion_count += 2
1066
1071
  rs = nil
1067
- io = StringIO.new "", "w"
1072
+ io = StringIO.new(+"", "w")
1068
1073
  File.stub5 :open, :value, io do
1069
1074
  result = File.open "foo.txt", "r" do |f|
1070
- rs = f.write("woot")
1075
+ rs = f.write "woot"
1071
1076
  end
1072
1077
  @tc.assert_equal :value, result
1073
1078
  end
@@ -1083,7 +1088,7 @@ class TestMinitestStub < Minitest::Test
1083
1088
  end
1084
1089
  end
1085
1090
  end
1086
- exp = /undefined method `write' for nil/
1091
+ exp = /undefined method [`']write' for nil/
1087
1092
  assert_match exp, e.message
1088
1093
  end
1089
1094
 
@@ -1092,11 +1097,11 @@ class TestMinitestStub < Minitest::Test
1092
1097
 
1093
1098
  @assertion_count += 2
1094
1099
  rs = nil
1095
- io = StringIO.new "", "w"
1100
+ io = StringIO.new(+"", "w")
1096
1101
  assert_deprecated do
1097
1102
  File.stub6 :open, :value, io do
1098
1103
  result = File.open "foo.txt", "r" do |f|
1099
- rs = f.write("woot")
1104
+ rs = f.write "woot"
1100
1105
  end
1101
1106
  @tc.assert_equal :value, result
1102
1107
  end
@@ -1110,7 +1115,7 @@ class TestMinitestStub < Minitest::Test
1110
1115
 
1111
1116
  @assertion_count += 2
1112
1117
  rs = nil
1113
- io = StringIO.new "", "w"
1118
+ io = StringIO.new(+"", "w")
1114
1119
  @tc.assert_raises ArgumentError do
1115
1120
  File.stub6_2 :open, :value, io do
1116
1121
  result = File.open "foo.txt", "r" do |f|