minitest 5.22.3 → 5.25.1
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 +70 -0
- data/Manifest.txt +2 -0
- data/README.rdoc +15 -13
- data/Rakefile +6 -0
- data/lib/hoe/minitest.rb +2 -1
- data/lib/minitest/assertions.rb +64 -69
- data/lib/minitest/autorun.rb +0 -7
- data/lib/minitest/benchmark.rb +6 -9
- data/lib/minitest/compress.rb +10 -10
- data/lib/minitest/error_on_warning.rb +11 -0
- data/lib/minitest/manual_plugins.rb +16 -0
- data/lib/minitest/mock.rb +13 -13
- data/lib/minitest/parallel.rb +5 -5
- 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 +17 -11
- data/lib/minitest.rb +204 -135
- data/test/minitest/metametameta.rb +18 -10
- data/test/minitest/test_minitest_assertions.rb +133 -134
- data/test/minitest/test_minitest_benchmark.rb +1 -1
- data/test/minitest/test_minitest_mock.rb +79 -74
- data/test/minitest/test_minitest_reporter.rb +12 -16
- data/test/minitest/test_minitest_spec.rb +54 -55
- data/test/minitest/test_minitest_test.rb +84 -103
- data/test/minitest/test_minitest_test_task.rb +18 -9
- data.tar.gz.sig +0 -0
- metadata +5 -3
- metadata.gz.sig +0 -0
| @@ -10,8 +10,9 @@ end | |
| 10 10 |  | 
| 11 11 | 
             
            class TestMinitestMock < Minitest::Test
         | 
| 12 12 | 
             
              def setup
         | 
| 13 | 
            -
                @mock = Minitest::Mock.new | 
| 14 | 
            -
             | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 76 | 
            -
                mock.foo | 
| 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 | 
| 126 | 
            +
                @mock.expect :sum, 3, [1, 2]
         | 
| 128 127 |  | 
| 129 128 | 
             
                e = assert_raises MockExpectationError do
         | 
| 130 | 
            -
                  @mock.sum | 
| 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 | 
| 167 | 
            -
                b.expect | 
| 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 | 
| 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( | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 364 | 
            +
                  mock.foo k1: arg1, k2: arg2, k3: :BAD!
         | 
| 365 365 | 
             
                end
         | 
| 366 366 |  | 
| 367 | 
            -
                exp = "mocked method :foo failed block w/ []  | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
            -
                   | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 483 | 
            +
                  mock.foo k1: arg1, k2: :BAD!, k3: arg3
         | 
| 480 484 | 
             
                end
         | 
| 481 485 |  | 
| 482 | 
            -
                 | 
| 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 ==  | 
| 499 | 
            -
                mock.foo | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 584 | 
            +
                mock.expect :foo, true, [1, 2, 3]
         | 
| 581 585 |  | 
| 582 | 
            -
                mock.send | 
| 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  | 
| 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 | 
| 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?  | 
| 731 | 
            -
             | 
| 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 | 
| 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  | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 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 | 
| 1075 | 
            +
                    rs = f.write "woot"
         | 
| 1071 1076 | 
             
                  end
         | 
| 1072 1077 | 
             
                  @tc.assert_equal :value, result
         | 
| 1073 1078 | 
             
                end
         | 
| @@ -1092,11 +1097,11 @@ class TestMinitestStub < Minitest::Test | |
| 1092 1097 |  | 
| 1093 1098 | 
             
                @assertion_count += 2
         | 
| 1094 1099 | 
             
                rs = nil
         | 
| 1095 | 
            -
                io = StringIO.new | 
| 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 | 
| 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 | 
| 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|
         | 
| @@ -13,10 +13,6 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 13 13 | 
             
              attr_accessor :r, :io
         | 
| 14 14 |  | 
| 15 15 | 
             
              def new_composite_reporter
         | 
| 16 | 
            -
                # Ruby bug in older versions of 2.2 & 2.3 on all platforms
         | 
| 17 | 
            -
                # Latest Windows builds were 2.2.6 and 2.3.3.  Latest Ruby releases were
         | 
| 18 | 
            -
                # 2.2.10 and 2.3.8.
         | 
| 19 | 
            -
                skip if windows? && RUBY_VERSION < '2.4'
         | 
| 20 16 | 
             
                reporter = Minitest::CompositeReporter.new
         | 
| 21 17 | 
             
                reporter << Minitest::SummaryReporter.new(self.io)
         | 
| 22 18 | 
             
                reporter << Minitest::ProgressReporter.new(self.io)
         | 
| @@ -31,13 +27,13 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 31 27 |  | 
| 32 28 | 
             
              def setup
         | 
| 33 29 | 
             
                super
         | 
| 34 | 
            -
                self.io = StringIO.new("")
         | 
| 30 | 
            +
                self.io = StringIO.new(+"")
         | 
| 35 31 | 
             
                self.r  = new_composite_reporter
         | 
| 36 32 | 
             
              end
         | 
| 37 33 |  | 
| 38 34 | 
             
              def error_test
         | 
| 39 35 | 
             
                unless defined? @et then
         | 
| 40 | 
            -
                  @et = Minitest::Test.new | 
| 36 | 
            +
                  @et = Minitest::Test.new :woot
         | 
| 41 37 | 
             
                  @et.failures << Minitest::UnexpectedError.new(begin
         | 
| 42 38 | 
             
                                                                  raise "no"
         | 
| 43 39 | 
             
                                                                rescue => e
         | 
| @@ -60,7 +56,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 60 56 |  | 
| 61 57 | 
             
                  ex.set_backtrace ary
         | 
| 62 58 |  | 
| 63 | 
            -
                  @sse = Minitest::Test.new | 
| 59 | 
            +
                  @sse = Minitest::Test.new :woot
         | 
| 64 60 | 
             
                  @sse.failures << Minitest::UnexpectedError.new(ex)
         | 
| 65 61 | 
             
                  @sse = Minitest::Result.from @sse
         | 
| 66 62 | 
             
                end
         | 
| @@ -69,7 +65,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 69 65 |  | 
| 70 66 | 
             
              def fail_test
         | 
| 71 67 | 
             
                unless defined? @ft then
         | 
| 72 | 
            -
                  @ft = Minitest::Test.new | 
| 68 | 
            +
                  @ft = Minitest::Test.new :woot
         | 
| 73 69 | 
             
                  @ft.failures <<   begin
         | 
| 74 70 | 
             
                                      raise Minitest::Assertion, "boo"
         | 
| 75 71 | 
             
                                    rescue Minitest::Assertion => e
         | 
| @@ -85,14 +81,14 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 85 81 | 
             
              end
         | 
| 86 82 |  | 
| 87 83 | 
             
              def passing_test_with_metadata
         | 
| 88 | 
            -
                test = Minitest::Test.new | 
| 84 | 
            +
                test = Minitest::Test.new :woot
         | 
| 89 85 | 
             
                test.metadata[:meta] = :data
         | 
| 90 86 | 
             
                @pt ||= Minitest::Result.from test
         | 
| 91 87 | 
             
              end
         | 
| 92 88 |  | 
| 93 89 | 
             
              def skip_test
         | 
| 94 90 | 
             
                unless defined? @st then
         | 
| 95 | 
            -
                  @st = Minitest::Test.new | 
| 91 | 
            +
                  @st = Minitest::Test.new :woot
         | 
| 96 92 | 
             
                  @st.failures << begin
         | 
| 97 93 | 
             
                                    raise Minitest::Skip
         | 
| 98 94 | 
             
                                  rescue Minitest::Assertion => e
         | 
| @@ -248,7 +244,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 248 244 | 
             
                r.start
         | 
| 249 245 | 
             
                r.report
         | 
| 250 246 |  | 
| 251 | 
            -
                exp =  | 
| 247 | 
            +
                exp = <<~EOM
         | 
| 252 248 | 
             
                  Run options:
         | 
| 253 249 |  | 
| 254 250 | 
             
                  # Running:
         | 
| @@ -268,7 +264,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 268 264 | 
             
                r.record passing_test
         | 
| 269 265 | 
             
                r.report
         | 
| 270 266 |  | 
| 271 | 
            -
                exp =  | 
| 267 | 
            +
                exp = <<~EOM
         | 
| 272 268 | 
             
                  Run options:
         | 
| 273 269 |  | 
| 274 270 | 
             
                  # Running:
         | 
| @@ -288,7 +284,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 288 284 | 
             
                r.record fail_test
         | 
| 289 285 | 
             
                r.report
         | 
| 290 286 |  | 
| 291 | 
            -
                exp =  | 
| 287 | 
            +
                exp = <<~EOM
         | 
| 292 288 | 
             
                  Run options:
         | 
| 293 289 |  | 
| 294 290 | 
             
                  # Running:
         | 
| @@ -312,7 +308,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 312 308 | 
             
                r.record error_test
         | 
| 313 309 | 
             
                r.report
         | 
| 314 310 |  | 
| 315 | 
            -
                exp =  | 
| 311 | 
            +
                exp = <<~EOM
         | 
| 316 312 | 
             
                  Run options:
         | 
| 317 313 |  | 
| 318 314 | 
             
                  # Running:
         | 
| @@ -338,7 +334,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 338 334 | 
             
                r.record system_stack_error_test
         | 
| 339 335 | 
             
                r.report
         | 
| 340 336 |  | 
| 341 | 
            -
                exp =  | 
| 337 | 
            +
                exp = <<~EOM
         | 
| 342 338 | 
             
                  Run options:
         | 
| 343 339 |  | 
| 344 340 | 
             
                  # Running:
         | 
| @@ -377,7 +373,7 @@ class TestMinitestReporter < MetaMetaMetaTestCase | |
| 377 373 | 
             
                  r.report
         | 
| 378 374 | 
             
                end
         | 
| 379 375 |  | 
| 380 | 
            -
                exp =  | 
| 376 | 
            +
                exp = <<~EOM
         | 
| 381 377 | 
             
                  Run options:
         | 
| 382 378 |  | 
| 383 379 | 
             
                  # Running:
         |