minitest 5.16.0 → 5.16.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 +8 -0
- data/lib/minitest/mock.rb +20 -3
- data/lib/minitest.rb +1 -1
- data/test/minitest/test_minitest_mock.rb +62 -1
- data.tar.gz.sig +0 -0
- metadata +2 -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: 852c6d118d767dd9a858cdb30033835fadb147806baf17b8212fd2adb73563f6
         | 
| 4 | 
            +
              data.tar.gz: a6b8773230001afcd126bec405ffa06324a2cf3a5d52588ba44e8c0a0750aef2
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: e7059905b9c55d737ce9d92c066fcd38080deb7a60535a142b528d91d97fc1be87726261725cf14c8dd6540c1d274da8ebbc860f9bea957bbd2e7f6a078381f6
         | 
| 7 | 
            +
              data.tar.gz: 8beb3623acb42c1a5fe640cbdbe99833181f90e4d9e52bcf297cfd471d86785c186291911e94e00d5b54cb56870ae1f1d97be16207c7c6381fc31bb56596e2aa
         | 
    
        checksums.yaml.gz.sig
    CHANGED
    
    | Binary file | 
    
        data/History.rdoc
    CHANGED
    
    | @@ -1,3 +1,11 @@ | |
| 1 | 
            +
            === 5.16.1 / 2022-06-20
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            * 2 bug fixes:
         | 
| 4 | 
            +
             | 
| 5 | 
            +
              * Apparently adding real kwarg support to mocks/stubs broke some code. Fixed.
         | 
| 6 | 
            +
                * Use `MT_KWARGS_HACK=1` to activate the kludgy kwargs support w/ caveats.
         | 
| 7 | 
            +
              * Clarified some doco wrt the block on #stub.
         | 
| 8 | 
            +
             | 
| 1 9 | 
             
            === 5.16.0 / 2022-06-14
         | 
| 2 10 |  | 
| 3 11 | 
             
            * 2 major enhancements:
         | 
    
        data/lib/minitest/mock.rb
    CHANGED
    
    | @@ -51,6 +51,8 @@ module Minitest # :nodoc: | |
| 51 51 | 
             
                  @actual_calls   = Hash.new { |calls, name| calls[name] = [] }
         | 
| 52 52 | 
             
                end
         | 
| 53 53 |  | 
| 54 | 
            +
                @@KW_WARNED = false # :nodoc:
         | 
| 55 | 
            +
             | 
| 54 56 | 
             
                ##
         | 
| 55 57 | 
             
                # Expect that method +name+ is called, optionally with +args+ (and
         | 
| 56 58 | 
             
                # +kwargs+ or a +blk+, and returns +retval+.
         | 
| @@ -91,10 +93,25 @@ module Minitest # :nodoc: | |
| 91 93 |  | 
| 92 94 | 
             
                  if block_given?
         | 
| 93 95 | 
             
                    raise ArgumentError, "args ignored when block given" unless args.empty?
         | 
| 96 | 
            +
                    raise ArgumentError, "kwargs ignored when block given" unless kwargs.empty?
         | 
| 94 97 | 
             
                    @expected_calls[name] << { :retval => retval, :block => blk }
         | 
| 95 98 | 
             
                  else
         | 
| 96 99 | 
             
                    raise ArgumentError, "args must be an array" unless Array === args
         | 
| 97 | 
            -
             | 
| 100 | 
            +
             | 
| 101 | 
            +
                    if ENV["MT_KWARGS_HAC\K"] && Hash === args.last then
         | 
| 102 | 
            +
                      if kwargs.empty? then
         | 
| 103 | 
            +
                        kwargs = args.pop
         | 
| 104 | 
            +
                      else
         | 
| 105 | 
            +
                        unless @@KW_WARNED then
         | 
| 106 | 
            +
                          from = caller.first
         | 
| 107 | 
            +
                          warn "Using MT_KWARGS_HAC\K yet passing kwargs. From #{from}"
         | 
| 108 | 
            +
                          @@KW_WARNED = true
         | 
| 109 | 
            +
                        end
         | 
| 110 | 
            +
                      end
         | 
| 111 | 
            +
                    end
         | 
| 112 | 
            +
             | 
| 113 | 
            +
                    @expected_calls[name] <<
         | 
| 114 | 
            +
                      { :retval => retval, :args => args, :kwargs => kwargs }
         | 
| 98 115 | 
             
                  end
         | 
| 99 116 | 
             
                  self
         | 
| 100 117 | 
             
                end
         | 
| @@ -250,7 +267,7 @@ class Object | |
| 250 267 | 
             
              # NOTE: keyword args in callables are NOT checked for correctness
         | 
| 251 268 | 
             
              # against the existing method. Too many edge cases to be worth it.
         | 
| 252 269 |  | 
| 253 | 
            -
              def stub name, val_or_callable, *block_args, **block_kwargs
         | 
| 270 | 
            +
              def stub name, val_or_callable, *block_args, **block_kwargs, &block
         | 
| 254 271 | 
             
                new_name = "__minitest_stub__#{name}"
         | 
| 255 272 |  | 
| 256 273 | 
             
                metaclass = class << self; self; end
         | 
| @@ -282,7 +299,7 @@ class Object | |
| 282 299 | 
             
                  end
         | 
| 283 300 | 
             
                end
         | 
| 284 301 |  | 
| 285 | 
            -
                 | 
| 302 | 
            +
                block[self]
         | 
| 286 303 | 
             
              ensure
         | 
| 287 304 | 
             
                metaclass.send :undef_method, name
         | 
| 288 305 | 
             
                metaclass.send :alias_method, name, new_name
         | 
    
        data/lib/minitest.rb
    CHANGED
    
    
| @@ -363,6 +363,53 @@ class TestMinitestMock < Minitest::Test | |
| 363 363 | 
             
                assert_mock mock
         | 
| 364 364 | 
             
              end
         | 
| 365 365 |  | 
| 366 | 
            +
              def with_kwargs_env
         | 
| 367 | 
            +
                ENV["MT_KWARGS_HAC\K"] = "1"
         | 
| 368 | 
            +
             | 
| 369 | 
            +
                yield
         | 
| 370 | 
            +
              ensure
         | 
| 371 | 
            +
                ENV.delete "MT_KWARGS_HAC\K"
         | 
| 372 | 
            +
              end
         | 
| 373 | 
            +
             | 
| 374 | 
            +
              def test_mock_block_is_passed_keyword_args__args__old_style_bad
         | 
| 375 | 
            +
                arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
         | 
| 376 | 
            +
                mock = Minitest::Mock.new
         | 
| 377 | 
            +
                mock.expect :foo, nil, [{k1: arg1, k2: arg2, k3: arg3}]
         | 
| 378 | 
            +
             | 
| 379 | 
            +
                e = assert_raises ArgumentError do
         | 
| 380 | 
            +
                  mock.foo(k1: arg1, k2: arg2, k3: arg3)
         | 
| 381 | 
            +
                end
         | 
| 382 | 
            +
             | 
| 383 | 
            +
                assert_equal "mocked method :foo expects 1 arguments, got []", e.message
         | 
| 384 | 
            +
              end
         | 
| 385 | 
            +
             | 
| 386 | 
            +
              def test_mock_block_is_passed_keyword_args__args__old_style_env
         | 
| 387 | 
            +
                with_kwargs_env do
         | 
| 388 | 
            +
                  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
         | 
| 389 | 
            +
                  mock = Minitest::Mock.new
         | 
| 390 | 
            +
                  mock.expect :foo, nil, [{k1: arg1, k2: arg2, k3: arg3}]
         | 
| 391 | 
            +
             | 
| 392 | 
            +
                  mock.foo(k1: arg1, k2: arg2, k3: arg3)
         | 
| 393 | 
            +
             | 
| 394 | 
            +
                  assert_mock mock
         | 
| 395 | 
            +
                end
         | 
| 396 | 
            +
              end
         | 
| 397 | 
            +
             | 
| 398 | 
            +
              def test_mock_block_is_passed_keyword_args__args__old_style_both
         | 
| 399 | 
            +
                with_kwargs_env do
         | 
| 400 | 
            +
                  arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
         | 
| 401 | 
            +
                  mock = Minitest::Mock.new
         | 
| 402 | 
            +
             | 
| 403 | 
            +
                  assert_output nil, /Using MT_KWARGS_HAC. yet passing kwargs/ do
         | 
| 404 | 
            +
                    mock.expect :foo, nil, [{}], k1: arg1, k2: arg2, k3: arg3
         | 
| 405 | 
            +
                  end
         | 
| 406 | 
            +
             | 
| 407 | 
            +
                  mock.foo({}, k1: arg1, k2: arg2, k3: arg3)
         | 
| 408 | 
            +
             | 
| 409 | 
            +
                  assert_mock mock
         | 
| 410 | 
            +
                end
         | 
| 411 | 
            +
              end
         | 
| 412 | 
            +
             | 
| 366 413 | 
             
              def test_mock_block_is_passed_keyword_args__args_bad_missing
         | 
| 367 414 | 
             
                arg1, arg2, arg3 = :bar, [1, 2, 3], { :a => "a" }
         | 
| 368 415 | 
             
                mock = Minitest::Mock.new
         | 
| @@ -442,7 +489,7 @@ class TestMinitestMock < Minitest::Test | |
| 442 489 | 
             
                assert_equal exp, e.message
         | 
| 443 490 | 
             
              end
         | 
| 444 491 |  | 
| 445 | 
            -
              def  | 
| 492 | 
            +
              def test_mock_block_raises_if_args_passed
         | 
| 446 493 | 
             
                mock = Minitest::Mock.new
         | 
| 447 494 |  | 
| 448 495 | 
             
                e = assert_raises(ArgumentError) do
         | 
| @@ -456,6 +503,20 @@ class TestMinitestMock < Minitest::Test | |
| 456 503 | 
             
                assert_match exp, e.message
         | 
| 457 504 | 
             
              end
         | 
| 458 505 |  | 
| 506 | 
            +
              def test_mock_block_raises_if_kwargs_passed
         | 
| 507 | 
            +
                mock = Minitest::Mock.new
         | 
| 508 | 
            +
             | 
| 509 | 
            +
                e = assert_raises(ArgumentError) do
         | 
| 510 | 
            +
                  mock.expect :foo, nil, kwargs:1 do
         | 
| 511 | 
            +
                    true
         | 
| 512 | 
            +
                  end
         | 
| 513 | 
            +
                end
         | 
| 514 | 
            +
             | 
| 515 | 
            +
                exp = "kwargs ignored when block given"
         | 
| 516 | 
            +
             | 
| 517 | 
            +
                assert_match exp, e.message
         | 
| 518 | 
            +
              end
         | 
| 519 | 
            +
             | 
| 459 520 | 
             
              def test_mock_returns_retval_when_called_with_block
         | 
| 460 521 | 
             
                mock = Minitest::Mock.new
         | 
| 461 522 | 
             
                mock.expect(:foo, 32) do
         | 
    
        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.16. | 
| 4 | 
            +
              version: 5.16.1
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ryan Davis
         | 
| @@ -29,7 +29,7 @@ cert_chain: | |
| 29 29 | 
             
              JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
         | 
| 30 30 | 
             
              YsuyUzsMz6GQA4khyaMgKNSD
         | 
| 31 31 | 
             
              -----END CERTIFICATE-----
         | 
| 32 | 
            -
            date: 2022-06- | 
| 32 | 
            +
            date: 2022-06-20 00:00:00.000000000 Z
         | 
| 33 33 | 
             
            dependencies:
         | 
| 34 34 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 35 35 | 
             
              name: rdoc
         | 
    
        metadata.gz.sig
    CHANGED
    
    | Binary file |