minitest 5.16.3 → 5.18.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9c5a4db9f495b34c86f2c39eef6b6d424b22d8d9e6a86038bf0ff84c1c20c975
4
- data.tar.gz: b8a1b6cb226d14c6972460bec05ec610d05acdfa0edcffe19bf51e8220486206
3
+ metadata.gz: 27d1d24e16ba576cc5a425d6e09e3de81465d10104a647c21ad9a5df36be1551
4
+ data.tar.gz: c3ca5dd490b7d08ee3254c7c8a680af0675f72e5356ad97b55dd1ec67e27251d
5
5
  SHA512:
6
- metadata.gz: 6505a8f386da89263a005ba8eef3f81053e7e666a54ec03abd8f71e06c290ebf318df4f7728e420e3f40fab55ffe1a57824ec435286c89864ea830d330d6b028
7
- data.tar.gz: 5b8bbba7d8565026e64da1d3af31a5aa342c3d063acd75de9661bc09fb142f4a469e9febf44daf2764d4fb33021d993a27bd936200efded501158b23c299989e
6
+ metadata.gz: f545c292aabb802ae8e03cea73bf2334a8ac6dea7da411b8e6ad48e036b00eabac550e5405c11aea175b30a9d65aced4e3601258081e845299ff6e1dbffd353d
7
+ data.tar.gz: ae62ac5c0f4218b66fe0206eb0205828c872531d6b68a4b0537fbe4b0a8753ccf604b4d11a11322dc329b275a1428683125c061e6e255f90ff5a076e4afb02ad
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,26 @@
1
+ === 5.18.0 / 2023-03-04
2
+
3
+ * 2 major enhancements:
4
+
5
+ * Added assert_pattern & refute_pattern for pattern matching. (flavorjones)
6
+ * Added matching must_pattern_match & wont_pattern_match to minitest/spec.
7
+
8
+ * 1 bug fix:
9
+
10
+ * Support the new message format of NameError in Ruby 3.3 (mame)
11
+
12
+ === 5.17.0 / 2022-12-31
13
+
14
+ * 1 minor enhancement:
15
+
16
+ * Refactor setup hooks into a SETUP_METHODS constant. (MSP-Greg)
17
+
18
+ * 3 bug fixes:
19
+
20
+ * Fix kwargs for Mock calls to delegator. (blowmage)
21
+ * Fix kwargs for expectations. (bobmazanec, blowmage)
22
+ * Remove check for .b method. (tenderlove)
23
+
1
24
  === 5.16.3 / 2022-08-17
2
25
 
3
26
  * 2 bug fixes:
data/README.rdoc CHANGED
@@ -407,37 +407,34 @@ Using our example above, here is how we might implement MyCI:
407
407
 
408
408
  Minitest is a dependency of rails, which until fairly recently had an
409
409
  overzealous backwards compatibility policy. As such, I'm stuck
410
- supporting versions of ruby that are long past EOL. Once rails 5.2 is
411
- dropped (hopefully April 2021), I get to drop a bunch of versions of
412
- ruby that I have to currently test against.
410
+ supporting versions of ruby that are long past EOL. Hopefully I'll be
411
+ able to support only current versions of ruby sometime in the near
412
+ future.
413
413
 
414
- (As of 2021-01-31)
414
+ (As of 2022-11-29)
415
415
 
416
416
  Current versions of rails: (https://endoflife.date/rails)
417
417
 
418
- | rails | min ruby | rec ruby | minitest | status |
419
- |-------+----------+----------+----------+----------|
420
- | 7.0 | >= 2.7 | 3.0 | >= 5.1 | Future |
421
- | 6.1 | >= 2.5 | 3.0 | >= 5.1 | Current |
422
- | 6.0 | >= 2.5 | 2.6 | >= 5.1 | Security |
423
- | 5.2 | >= 2.2.2 | 2.5 | ~> 5.1 | Security | EOL @railsconf 2021?
418
+ | rails | min ruby | rec ruby | minitest | status | EOL Date |
419
+ |-------+----------+----------+----------+----------+------------|
420
+ | 7.0 | >= 2.7 | 3.1 | >= 5.1 | Current | 2025-06-01?|
421
+ | 6.1 | >= 2.5 | 3.0 | >= 5.1 | Maint | 2024-06-01?|
422
+ | 6.0 | >= 2.5 | 2.6 | >= 5.1 | Security | 2023-06-01 |
423
+ | 5.2 | >= 2.2.2 | 2.5 | ~> 5.1 | EOL | 2022-06-01 |
424
424
 
425
425
  Current versions of ruby: (https://endoflife.date/ruby)
426
426
 
427
427
  | ruby | Status | EOL Date |
428
428
  |------+---------+------------|
429
- | 3.0 | Current | 2024-03-31 |
430
- | 2.7 | Maint | 2023-03-31 |
431
- | 2.6 | Maint* | 2022-03-31 |
429
+ | 3.1 | Current | 2025-12-25 |
430
+ | 3.0 | Maint | 2024-03-31 |
431
+ | 2.7 | Maint* | 2023-03-31 |
432
+ | 2.6 | EOL | 2022-03-31 |
432
433
  | 2.5 | EOL | 2021-03-31 |
433
- | 2.4 | EOL | 2020-03-31 |
434
- | 2.3 | EOL | 2019-03-31 |
435
- | 2.2 | EOL | 2018-03-31 |
436
434
 
437
435
  See also:
438
436
 
439
437
  * https://www.fastruby.io/blog/ruby/rails/versions/compatibility-table.html
440
- * https://jamesjeffersconsulting.com/ruby-rails-version-matrix/
441
438
 
442
439
  === How to test SimpleDelegates?
443
440
 
data/Rakefile CHANGED
@@ -2,6 +2,7 @@
2
2
 
3
3
  require "rubygems"
4
4
  require "hoe"
5
+ $:.unshift "lib" # to pick up lib/minitest/test_task.rb when minitest not installed
5
6
 
6
7
  Hoe.plugin :seattlerb
7
8
  Hoe.plugin :rdoc
@@ -357,6 +357,32 @@ module Minitest
357
357
  assert File.exist?(path), msg
358
358
  end
359
359
 
360
+ ##
361
+ # For testing with pattern matching (only supported with Ruby 3.0 and later)
362
+ #
363
+ # # pass
364
+ # assert_pattern { [1,2,3] => [Integer, Integer, Integer] }
365
+ #
366
+ # # fail "length mismatch (given 3, expected 1)"
367
+ # assert_pattern { [1,2,3] => [Integer] }
368
+ #
369
+ # The bare <tt>=></tt> pattern will raise a NoMatchingPatternError on failure, which would
370
+ # normally be counted as a test error. This assertion rescues NoMatchingPatternError and
371
+ # generates a test failure. Any other exception will be raised as normal and generate a test
372
+ # error.
373
+
374
+ def assert_pattern
375
+ raise NotImplementedError, "only available in Ruby 3.0+" unless RUBY_VERSION >= "3.0"
376
+ flunk "assert_pattern requires a block to capture errors." unless block_given?
377
+
378
+ begin # TODO: remove after ruby 2.6 dropped
379
+ yield
380
+ pass
381
+ rescue NoMatchingPatternError => e
382
+ flunk e.message
383
+ end
384
+ end
385
+
360
386
  ##
361
387
  # For testing with predicates. Eg:
362
388
  #
@@ -721,6 +747,30 @@ module Minitest
721
747
  refute obj.nil?, msg
722
748
  end
723
749
 
750
+ ##
751
+ # For testing with pattern matching (only supported with Ruby 3.0 and later)
752
+ #
753
+ # # pass
754
+ # refute_pattern { [1,2,3] => [String] }
755
+ #
756
+ # # fail "NoMatchingPatternError expected, but nothing was raised."
757
+ # refute_pattern { [1,2,3] => [Integer, Integer, Integer] }
758
+ #
759
+ # This assertion expects a NoMatchingPatternError exception, and will fail if none is raised. Any
760
+ # other exceptions will be raised as normal and generate a test error.
761
+
762
+ def refute_pattern
763
+ raise NotImplementedError, "only available in Ruby 3.0+" unless RUBY_VERSION >= "3.0"
764
+ flunk "refute_pattern requires a block to capture errors." unless block_given?
765
+
766
+ begin
767
+ yield
768
+ flunk("NoMatchingPatternError expected, but nothing was raised.")
769
+ rescue NoMatchingPatternError
770
+ pass
771
+ end
772
+ end
773
+
724
774
  ##
725
775
  # Fails if +o1+ is not +op+ +o2+. Eg:
726
776
  #
@@ -124,6 +124,15 @@ module Minitest::Expectations
124
124
 
125
125
  infect_an_assertion :assert_output, :must_output, :block
126
126
 
127
+ ##
128
+ # See Minitest::Assertions#assert_pattern_match
129
+ #
130
+ # _ { ... }.must_pattern_match [...]
131
+ #
132
+ # :method: must_pattern_match
133
+
134
+ infect_an_assertion :assert_pattern, :must_pattern_match, :block
135
+
127
136
  ##
128
137
  # See Minitest::Assertions#assert_raises
129
138
  #
@@ -283,6 +292,15 @@ module Minitest::Expectations
283
292
 
284
293
  infect_an_assertion :refute_operator, :wont_be, :reverse
285
294
 
295
+ ##
296
+ # See Minitest::Assertions#refute_pattern_match
297
+ #
298
+ # _ { ... }.wont_pattern_match [...]
299
+ #
300
+ # :method: wont_pattern_match
301
+
302
+ infect_an_assertion :refute_pattern, :wont_pattern_match, :block
303
+
286
304
  ##
287
305
  # See Minitest::Assertions#refute_respond_to
288
306
  #
data/lib/minitest/mock.rb CHANGED
@@ -55,7 +55,7 @@ module Minitest # :nodoc:
55
55
 
56
56
  ##
57
57
  # Expect that method +name+ is called, optionally with +args+ (and
58
- # +kwargs+ or a +blk+, and returns +retval+.
58
+ # +kwargs+ or a +blk+), and returns +retval+.
59
59
  #
60
60
  # @mock.expect(:meaning_of_life, 42)
61
61
  # @mock.meaning_of_life # => 42
@@ -150,7 +150,11 @@ module Minitest # :nodoc:
150
150
  def method_missing sym, *args, **kwargs, &block # :nodoc:
151
151
  unless @expected_calls.key?(sym) then
152
152
  if @delegator && @delegator.respond_to?(sym)
153
- return @delegator.public_send(sym, *args, **kwargs, &block)
153
+ if kwargs.empty? then # FIX: drop this after 2.7 dead
154
+ return @delegator.public_send(sym, *args, &block)
155
+ else
156
+ return @delegator.public_send(sym, *args, **kwargs, &block)
157
+ end
154
158
  else
155
159
  raise NoMethodError, "unmocked method %p, expected one of %p" %
156
160
  [sym, @expected_calls.keys.sort_by(&:to_s)]
data/lib/minitest/spec.rb CHANGED
@@ -6,6 +6,10 @@ class Module # :nodoc:
6
6
  dont_flip = false if block
7
7
  target_obj = block ? '_{obj.method}' : '_(obj)'
8
8
 
9
+ # https://eregon.me/blog/2021/02/13/correct-delegation-in-ruby-2-27-3.html
10
+ # Drop this when we can drop ruby 2.6 (aka after rails 6.1 EOL, ~2024-06)
11
+ kw_extra = "ruby2_keywords %p" % [new_name] if respond_to?(:ruby2_keywords, true)
12
+
9
13
  # warn "%-22p -> %p %p" % [meth, new_name, dont_flip]
10
14
  self.class_eval <<-EOM, __FILE__, __LINE__ + 1
11
15
  def #{new_name} *args
@@ -14,6 +18,7 @@ class Module # :nodoc:
14
18
  Kernel.warn "DEPRECATED: global use of #{new_name} from #\{where}. Use #{target_obj}.#{new_name} instead. This will fail in Minitest 6."
15
19
  Minitest::Expectation.new(self, Minitest::Spec.current).#{new_name}(*args)
16
20
  end
21
+ #{kw_extra}
17
22
  EOM
18
23
 
19
24
  Minitest::Expectation.class_eval <<-EOM, __FILE__, __LINE__ + 1
@@ -28,6 +33,7 @@ class Module # :nodoc:
28
33
  ctx.#{meth}(args.first, target, *args[1..-1])
29
34
  end
30
35
  end
36
+ #{kw_extra}
31
37
  EOM
32
38
  end
33
39
  end
data/lib/minitest/test.rb CHANGED
@@ -18,6 +18,10 @@ module Minitest
18
18
 
19
19
  PASSTHROUGH_EXCEPTIONS = [NoMemoryError, SignalException, SystemExit] # :nodoc:
20
20
 
21
+ SETUP_METHODS = %w[ before_setup setup after_setup ] # :nodoc:
22
+
23
+ TEARDOWN_METHODS = %w[ before_teardown teardown after_teardown ] # :nodoc:
24
+
21
25
  # :stopdoc:
22
26
  class << self; attr_accessor :io_lock; end
23
27
  self.io_lock = Mutex.new
@@ -84,8 +88,6 @@ module Minitest
84
88
  :random
85
89
  end
86
90
 
87
- TEARDOWN_METHODS = %w[ before_teardown teardown after_teardown ] # :nodoc:
88
-
89
91
  ##
90
92
  # Runs a single test with setup/teardown hooks.
91
93
 
@@ -93,7 +95,9 @@ module Minitest
93
95
  with_info_handler do
94
96
  time_it do
95
97
  capture_exceptions do
96
- before_setup; setup; after_setup
98
+ SETUP_METHODS.each do |hook|
99
+ self.send hook
100
+ end
97
101
 
98
102
  self.send self.name
99
103
  end
@@ -208,7 +212,7 @@ module Minitest
208
212
  neuter_exception e
209
213
  end
210
214
 
211
- def neuter_exception e
215
+ def neuter_exception e # :nodoc:
212
216
  bt = e.backtrace
213
217
  msg = e.message.dup
214
218
 
@@ -219,7 +223,7 @@ module Minitest
219
223
  new_exception RuntimeError, msg, bt, true # but if this raises, we die
220
224
  end
221
225
 
222
- def new_exception klass, msg, bt, kill = false
226
+ def new_exception klass, msg, bt, kill = false # :nodoc:
223
227
  ne = klass.new msg
224
228
  ne.set_backtrace bt
225
229
 
@@ -277,8 +277,8 @@ module Minitest # :nodoc:
277
277
  end
278
278
  end
279
279
 
280
- class Work < Queue
281
- def initialize jobs = []
280
+ class Work < Queue # :nodoc:
281
+ def initialize jobs = [] # :nodoc:
282
282
  super()
283
283
 
284
284
  jobs.each do |job|
@@ -289,7 +289,7 @@ class Work < Queue
289
289
  end
290
290
  end
291
291
 
292
- class Integer
292
+ class Integer # :nodoc:
293
293
  def threads_do(jobs) # :nodoc:
294
294
  require "thread"
295
295
  q = Work.new jobs
data/lib/minitest.rb CHANGED
@@ -9,7 +9,7 @@ require "etc"
9
9
  # :include: README.rdoc
10
10
 
11
11
  module Minitest
12
- VERSION = "5.16.3" # :nodoc:
12
+ VERSION = "5.18.0" # :nodoc:
13
13
 
14
14
  @@installed_at_exit ||= false
15
15
  @@after_run = []
@@ -823,7 +823,7 @@ module Minitest
823
823
  end
824
824
 
825
825
  def to_s # :nodoc:
826
- aggregated_results(StringIO.new(binary_string)).string
826
+ aggregated_results(StringIO.new(''.b)).string
827
827
  end
828
828
 
829
829
  def summary # :nodoc:
@@ -836,14 +836,6 @@ module Minitest
836
836
  "%d runs, %d assertions, %d failures, %d errors, %d skips%s" %
837
837
  [count, assertions, failures, errors, skips, extra]
838
838
  end
839
-
840
- private
841
-
842
- if '<3'.respond_to? :b
843
- def binary_string; ''.b; end
844
- else
845
- def binary_string; ''.force_encoding(Encoding::ASCII_8BIT); end
846
- end
847
839
  end
848
840
 
849
841
  ##
@@ -1062,6 +1062,66 @@ class TestMinitestAssertions < Minitest::Test
1062
1062
  end
1063
1063
  end
1064
1064
 
1065
+ def test_assert_pattern
1066
+ if RUBY_VERSION > "3" then
1067
+ @tc.assert_pattern do
1068
+ exp = if RUBY_VERSION.start_with? "3.0"
1069
+ "(eval):1: warning: One-line pattern matching is experimental, and the behavior may change in future versions of Ruby!\n"
1070
+ else
1071
+ ""
1072
+ end
1073
+ assert_output nil, exp do
1074
+ eval "[1,2,3] => [Integer, Integer, Integer]" # eval to escape parser for ruby<3
1075
+ end
1076
+ end
1077
+ else
1078
+ @assertion_count = 0
1079
+
1080
+ assert_raises NotImplementedError do
1081
+ @tc.assert_pattern do
1082
+ # do nothing
1083
+ end
1084
+ end
1085
+ end
1086
+ end
1087
+
1088
+ def test_assert_pattern_traps_nomatchingpatternerror
1089
+ skip unless RUBY_VERSION > "3"
1090
+ exp = if RUBY_VERSION.start_with? "3.0" then
1091
+ "[1, 2, 3]" # terrible error message!
1092
+ else
1093
+ /length mismatch/
1094
+ end
1095
+
1096
+ assert_triggered exp do
1097
+ @tc.assert_pattern do
1098
+ capture_io do # 3.0 is noisy
1099
+ eval "[1,2,3] => [Integer, Integer]" # eval to escape parser for ruby<3
1100
+ end
1101
+ end
1102
+ end
1103
+ end
1104
+
1105
+ def test_assert_pattern_raises_other_exceptions
1106
+ skip unless RUBY_VERSION >= "3.0"
1107
+
1108
+ @assertion_count = 0
1109
+
1110
+ assert_raises RuntimeError do
1111
+ @tc.assert_pattern do
1112
+ raise "boom"
1113
+ end
1114
+ end
1115
+ end
1116
+
1117
+ def test_assert_pattern_with_no_block
1118
+ skip unless RUBY_VERSION >= "3.0"
1119
+
1120
+ assert_triggered "assert_pattern requires a block to capture errors." do
1121
+ @tc.assert_pattern
1122
+ end
1123
+ end
1124
+
1065
1125
  def test_capture_io
1066
1126
  @assertion_count = 0
1067
1127
 
@@ -1314,6 +1374,56 @@ class TestMinitestAssertions < Minitest::Test
1314
1374
  end
1315
1375
  end
1316
1376
 
1377
+ def test_refute_pattern
1378
+ if RUBY_VERSION >= "3.0"
1379
+ @tc.refute_pattern do
1380
+ capture_io do # 3.0 is noisy
1381
+ eval "[1,2,3] => [Integer, Integer, String]"
1382
+ end
1383
+ end
1384
+ else
1385
+ @assertion_count = 0
1386
+
1387
+ assert_raises NotImplementedError do
1388
+ @tc.refute_pattern do
1389
+ eval "[1,2,3] => [Integer, Integer, String]"
1390
+ end
1391
+ end
1392
+ end
1393
+ end
1394
+
1395
+ def test_refute_pattern_expects_nomatchingpatternerror
1396
+ skip unless RUBY_VERSION > "3"
1397
+
1398
+ assert_triggered(/NoMatchingPatternError expected, but nothing was raised./) do
1399
+ @tc.refute_pattern do
1400
+ capture_io do # 3.0 is noisy
1401
+ eval "[1,2,3] => [Integer, Integer, Integer]"
1402
+ end
1403
+ end
1404
+ end
1405
+ end
1406
+
1407
+ def test_refute_pattern_raises_other_exceptions
1408
+ skip unless RUBY_VERSION >= "3.0"
1409
+
1410
+ @assertion_count = 0
1411
+
1412
+ assert_raises RuntimeError do
1413
+ @tc.refute_pattern do
1414
+ raise "boom"
1415
+ end
1416
+ end
1417
+ end
1418
+
1419
+ def test_refute_pattern_with_no_block
1420
+ skip unless RUBY_VERSION >= "3.0"
1421
+
1422
+ assert_triggered "refute_pattern requires a block to capture errors." do
1423
+ @tc.refute_pattern
1424
+ end
1425
+ end
1426
+
1317
1427
  def test_refute_predicate
1318
1428
  @tc.refute_predicate "42", :empty?
1319
1429
  end
@@ -9,8 +9,6 @@ ensure
9
9
  end
10
10
 
11
11
  class TestMinitestMock < Minitest::Test
12
- parallelize_me!
13
-
14
12
  def setup
15
13
  @mock = Minitest::Mock.new.expect(:foo, nil)
16
14
  @mock.expect(:meaning_of_life, 42)
@@ -260,6 +258,15 @@ class TestMinitestMock < Minitest::Test
260
258
  assert_equal exp, e.message
261
259
  end
262
260
 
261
+ def test_delegator_calls_are_propagated
262
+ delegator = Object.new
263
+ mock = Minitest::Mock.new delegator
264
+
265
+ refute delegator.nil?
266
+ refute mock.nil?
267
+ assert_mock mock
268
+ end
269
+
263
270
  def test_handles_kwargs_in_error_message
264
271
  mock = Minitest::Mock.new
265
272
 
@@ -1076,7 +1083,7 @@ class TestMinitestStub < Minitest::Test
1076
1083
  end
1077
1084
  end
1078
1085
  end
1079
- exp = "undefined method `write' for nil:NilClass"
1086
+ exp = /undefined method `write' for nil/
1080
1087
  assert_match exp, e.message
1081
1088
  end
1082
1089
 
@@ -137,6 +137,46 @@ describe Minitest::Spec do
137
137
  end
138
138
  end
139
139
 
140
+ def good_pattern
141
+ capture_io do # 3.0 is noisy
142
+ eval "[1,2,3] => [Integer, Integer, Integer]" # eval to escape parser for ruby<3
143
+ end
144
+ end
145
+
146
+ def bad_pattern
147
+ capture_io do # 3.0 is noisy
148
+ eval "[1,2,3] => [Integer, Integer]" # eval to escape parser for ruby<3
149
+ end
150
+ end
151
+
152
+ it "needs to pattern match" do
153
+ @assertion_count = 1
154
+
155
+ if RUBY_VERSION > "3" then
156
+ expect { good_pattern }.must_pattern_match
157
+ else
158
+ assert_raises NotImplementedError do
159
+ expect {}.must_pattern_match
160
+ end
161
+ end
162
+ end
163
+
164
+ it "needs to error on bad pattern match" do
165
+ skip unless RUBY_VERSION > "3"
166
+
167
+ @assertion_count = 1
168
+
169
+ exp = if RUBY_VERSION.start_with? "3.0"
170
+ "[1, 2, 3]" # terrible error message!
171
+ else
172
+ /length mismatch/
173
+ end
174
+
175
+ assert_triggered exp do
176
+ expect { bad_pattern }.must_pattern_match
177
+ end
178
+ end
179
+
140
180
  it "needs to ensure silence" do
141
181
  @assertion_count -= 1 # no msg
142
182
  @assertion_count += 2 # assert_output is 2 assertions
@@ -172,6 +212,7 @@ describe Minitest::Spec do
172
212
  must_include
173
213
  must_match
174
214
  must_output
215
+ must_pattern_match
175
216
  must_raise
176
217
  must_respond_to
177
218
  must_throw
@@ -1068,3 +1109,38 @@ class ValueMonadTest < Minitest::Test
1068
1109
  assert_equal "c", struct.expect
1069
1110
  end
1070
1111
  end
1112
+
1113
+ describe Minitest::Spec, :infect_an_assertion do
1114
+ class << self
1115
+ attr_accessor :infect_mock
1116
+ end
1117
+
1118
+ def assert_infects exp, act, msg = nil, foo: nil, bar: nil
1119
+ self.class.infect_mock.assert_infects exp, act, msg, foo: foo, bar: bar
1120
+ end
1121
+
1122
+ infect_an_assertion :assert_infects, :must_infect
1123
+ infect_an_assertion :assert_infects, :must_infect_without_flipping, :dont_flip
1124
+
1125
+ it "infects assertions with kwargs" do
1126
+ mock = Minitest::Mock.new
1127
+ mock.expect :assert_infects, true, [:exp, :act, nil], foo: :foo, bar: :bar
1128
+
1129
+ self.class.infect_mock = mock
1130
+
1131
+ _(:act).must_infect :exp, foo: :foo, bar: :bar
1132
+
1133
+ assert_mock mock
1134
+ end
1135
+
1136
+ it "infects assertions with kwargs (dont_flip)" do
1137
+ mock = Minitest::Mock.new
1138
+ mock.expect :assert_infects, true, [:act, :exp, nil], foo: :foo, bar: :bar
1139
+
1140
+ self.class.infect_mock = mock
1141
+
1142
+ _(:act).must_infect_without_flipping :exp, foo: :foo, bar: :bar
1143
+
1144
+ assert_mock mock
1145
+ end
1146
+ end
data.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- ��#3)�~<Lp1���=�ܞb���qG���,]x,_�.f��� ��|Wqn�g�:����ۊ���-5
2
- �3W P�fG&�����TU�5���tj�Ͷ�AoRvn�ܿ����h��������V�ڌ�Xh3�G׏p��g���|\%d�L�Y#��D�e�=p�={����t�,I���L�����i���2-��$�~�z����]6F�M{t/֦yϭ
1
+ ��w`׬^�F�t���X�5�*��c.%RHt~��~F�A�ƴ #7?�"ļ���Ju��Wj$�: ��J8)bx�eYʎEɆT2C�-xQ0 �.�.��ڿ�){�̯rFAt��W�& )��0{�X�s����Ps��Q�3˚�Fw,3H�0GW$���1�L���I��d2g�N�_�n�I�w��lm�k&&�DV��|��t��o�$�� ̵"���kq�q��x�Ҋ�G��￰�N���
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.3
4
+ version: 5.18.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
@@ -10,9 +10,9 @@ bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBBjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTIxMTIyMzIzMTkwNFoXDTIyMTIyMzIzMTkwNFowRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -22,14 +22,14 @@ cert_chain:
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
24
  HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
- AQCKB5jfsuSnKb+t/Wrh3UpdkmX7TrEsjVmERC0pPqzQ5GQJgmEXDD7oMgaKXaAq
26
- x2m+KSZDrqk7c8uho5OX6YMqg4KdxehfSLqqTZGoeV78qwf/jpPQZKTf+W9gUSJh
27
- zsWpo4K50MP+QtdSbKXZwjAafpQ8hK0MnnZ/aeCsW9ov5vdXpYbf3dpg6ADXRGE7
28
- lQY2y1tJ5/chqu6h7dQmnm2ABUqx9O+JcN9hbCYoA5i/EeubUEtFIh2w3SpO6YfB
29
- JFmxn4h9YO/pVdB962BdBNNDia0kgIjI3ENnkLq0dKpYU3+F3KhEuTksLO0L6X/V
30
- YsuyUzsMz6GQA4khyaMgKNSD
25
+ AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
26
+ xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
27
+ sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
28
+ WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
29
+ ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
30
+ nsNBRuQJ1UfiCG97a6DNm+Fr
31
31
  -----END CERTIFICATE-----
32
- date: 2022-08-17 00:00:00.000000000 Z
32
+ date: 2023-03-04 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: rdoc
@@ -57,14 +57,14 @@ dependencies:
57
57
  requirements:
58
58
  - - "~>"
59
59
  - !ruby/object:Gem::Version
60
- version: '3.24'
60
+ version: '4.0'
61
61
  type: :development
62
62
  prerelease: false
63
63
  version_requirements: !ruby/object:Gem::Requirement
64
64
  requirements:
65
65
  - - "~>"
66
66
  - !ruby/object:Gem::Version
67
- version: '3.24'
67
+ version: '4.0'
68
68
  description: |-
69
69
  minitest provides a complete suite of testing facilities supporting
70
70
  TDD, BDD, mocking, and benchmarking.
@@ -183,7 +183,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
183
183
  - !ruby/object:Gem::Version
184
184
  version: '0'
185
185
  requirements: []
186
- rubygems_version: 3.3.12
186
+ rubygems_version: 3.4.6
187
187
  signing_key:
188
188
  specification_version: 4
189
189
  summary: minitest provides a complete suite of testing facilities supporting TDD,
metadata.gz.sig CHANGED
Binary file