minitest 5.9.1 → 5.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- data/History.rdoc +11 -0
- data/README.rdoc +6 -2
- data/Rakefile +16 -2
- data/lib/minitest.rb +34 -8
- data/lib/minitest/assertions.rb +15 -1
- data/lib/minitest/benchmark.rb +1 -1
- data/lib/minitest/mock.rb +4 -4
- data/lib/minitest/parallel.rb +1 -1
- data/lib/minitest/pride_plugin.rb +1 -1
- data/lib/minitest/spec.rb +1 -1
- data/lib/minitest/test.rb +1 -3
- data/lib/minitest/unit.rb +1 -1
- data/test/minitest/metametameta.rb +11 -0
- data/test/minitest/test_minitest_mock.rb +6 -6
- data/test/minitest/test_minitest_spec.rb +29 -26
- data/test/minitest/test_minitest_test.rb +92 -41
- metadata +2 -2
- metadata.gz.sig +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 48297af06eab4424d8838e3313b009557efd6d89
|
4
|
+
data.tar.gz: 55fc554fbf6475f7d1f59e101b0deedc81c7dd54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4a43c8e38da3dc9b26147b7e0242d7d95875b35c23be0965a8811bf16754cb58eab55ec763cfaa34c5f2a056c0defe9a4460b79005a36f48f73949d6fdf68081
|
7
|
+
data.tar.gz: 0aefd1de07da46c5f4e90b43946f88c64740503ec003f27869804c0a380b071e06d9648a6b6c3c339d588a02e9ab26cac269092a0f7fb4783f7df5d6eaaff103
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data.tar.gz.sig
CHANGED
Binary file
|
data/History.rdoc
CHANGED
@@ -1,3 +1,14 @@
|
|
1
|
+
=== 5.10.0 / 2016-11-30
|
2
|
+
|
3
|
+
* 2 minor enhancements:
|
4
|
+
|
5
|
+
* Added AbstractReporter#prerecord and extended ProgressReporter and CompositeReporter to use it.
|
6
|
+
* Minor optimization: remove runnables with no runnable methods before run.
|
7
|
+
|
8
|
+
* 1 bug fix:
|
9
|
+
|
10
|
+
* 2.4: removed deprecation warnings when referring to Fixnum.
|
11
|
+
|
1
12
|
=== 5.9.1 / 2016-09-25
|
2
13
|
|
3
14
|
* 2 bug fixes:
|
data/README.rdoc
CHANGED
@@ -325,7 +325,7 @@ bogus example:
|
|
325
325
|
|
326
326
|
Minitest uses composite reporter to output test results using multiple
|
327
327
|
reporter instances. You can add new reporters to the composite during
|
328
|
-
the init_plugins phase. As we saw in +
|
328
|
+
the init_plugins phase. As we saw in +plugin_bogus_init+ above, you
|
329
329
|
simply add your reporter instance to the composite via <tt><<</tt>.
|
330
330
|
|
331
331
|
+AbstractReporter+ defines the API for reporters. You may subclass it
|
@@ -466,7 +466,7 @@ minitest-around :: Around block for minitest. An alternative to
|
|
466
466
|
setup/teardown dance.
|
467
467
|
minitest-assert_errors :: Adds Minitest assertions to test for errors raised
|
468
468
|
or not raised by Minitest itself.
|
469
|
-
minitest-autotest :: autotest is a
|
469
|
+
minitest-autotest :: autotest is a continuous testing facility meant to
|
470
470
|
be used during development.
|
471
471
|
minitest-bacon :: minitest-bacon extends minitest with bacon-like
|
472
472
|
functionality.
|
@@ -605,6 +605,10 @@ Authors... Please send me a pull request with a description of your minitest ext
|
|
605
605
|
* minitest-sugar
|
606
606
|
* spork-minitest
|
607
607
|
|
608
|
+
== Minitest related goods
|
609
|
+
|
610
|
+
* minitest/pride fabric: http://www.spoonflower.com/fabric/3928730-again-by-katie_allen
|
611
|
+
|
608
612
|
== REQUIREMENTS:
|
609
613
|
|
610
614
|
* Ruby 1.8.7+. No magic is involved. I hope.
|
data/Rakefile
CHANGED
@@ -11,13 +11,27 @@ Hoe.spec "minitest" do
|
|
11
11
|
|
12
12
|
license "MIT"
|
13
13
|
|
14
|
-
|
14
|
+
## TODO: uncomment this on the last point release on 5.x
|
15
|
+
#
|
16
|
+
# self.post_install_message = <<-"EOM"
|
17
|
+
# NOTE: minitest 5 will be the last in the minitest family to support
|
18
|
+
# ruby 1.8 and 1.9 (and maybe 2.0?). If you need to keep using 1.8
|
19
|
+
# or 1.9, you need to pin your dependency to minitest with
|
20
|
+
# something like "~> 5.0".
|
21
|
+
#
|
22
|
+
# Further, minitest 6 will be dropping the following:
|
23
|
+
#
|
24
|
+
# + MiniTest (it's been Minitest for *years*)
|
25
|
+
# + MiniTest::Unit
|
26
|
+
# + MiniTest::Unit::TestCase
|
27
|
+
# + assert_send (unless you argue for it well)
|
28
|
+
# EOM
|
15
29
|
end
|
16
30
|
|
17
31
|
desc "Find missing expectations"
|
18
32
|
task :specs do
|
19
33
|
$:.unshift "lib"
|
20
|
-
require "minitest/
|
34
|
+
require "minitest/test"
|
21
35
|
require "minitest/spec"
|
22
36
|
|
23
37
|
pos_prefix, neg_prefix = "must", "wont"
|
data/lib/minitest.rb
CHANGED
@@ -7,7 +7,7 @@ require "minitest/parallel"
|
|
7
7
|
# :include: README.rdoc
|
8
8
|
|
9
9
|
module Minitest
|
10
|
-
VERSION = "5.
|
10
|
+
VERSION = "5.10.0" # :nodoc:
|
11
11
|
ENCS = "".respond_to? :encoding # :nodoc:
|
12
12
|
|
13
13
|
@@installed_at_exit ||= false
|
@@ -147,7 +147,7 @@ module Minitest
|
|
147
147
|
# sub-classes to run.
|
148
148
|
|
149
149
|
def self.__run reporter, options
|
150
|
-
suites = Runnable.runnables.shuffle
|
150
|
+
suites = Runnable.runnables.reject { |s| s.runnable_methods.empty? }.shuffle
|
151
151
|
parallel, serial = suites.partition { |s| s.test_order == :parallel }
|
152
152
|
|
153
153
|
# If we run the parallel tests before the serial tests, the parallel tests
|
@@ -319,6 +319,7 @@ module Minitest
|
|
319
319
|
# test. See Minitest::ParallelTest::ClassMethods for an example.
|
320
320
|
|
321
321
|
def self.run_one_method klass, method_name, reporter
|
322
|
+
reporter.prerecord klass, method_name
|
322
323
|
reporter.record Minitest.run_one_method(klass, method_name)
|
323
324
|
end
|
324
325
|
|
@@ -429,6 +430,13 @@ module Minitest
|
|
429
430
|
def start
|
430
431
|
end
|
431
432
|
|
433
|
+
##
|
434
|
+
# About to start running a test. This allows a reporter to show
|
435
|
+
# that it is starting or that we are in the middle of a test run.
|
436
|
+
|
437
|
+
def prerecord klass, name
|
438
|
+
end
|
439
|
+
|
432
440
|
##
|
433
441
|
# Record a result and output the Runnable#result_code. Stores the
|
434
442
|
# result of the run if the run did not pass.
|
@@ -477,9 +485,15 @@ module Minitest
|
|
477
485
|
# own.
|
478
486
|
|
479
487
|
class ProgressReporter < Reporter
|
488
|
+
def prerecord klass, name
|
489
|
+
if options[:verbose] then
|
490
|
+
io.print "%s#%s = " % [klass, name]
|
491
|
+
io.flush
|
492
|
+
end
|
493
|
+
end
|
494
|
+
|
480
495
|
def record result # :nodoc:
|
481
|
-
io.print "
|
482
|
-
options[:verbose]
|
496
|
+
io.print "%.2f s = " % [result.time] if options[:verbose]
|
483
497
|
io.print result.result_code
|
484
498
|
io.puts if options[:verbose]
|
485
499
|
end
|
@@ -648,6 +662,12 @@ module Minitest
|
|
648
662
|
self.reporters.each(&:start)
|
649
663
|
end
|
650
664
|
|
665
|
+
def prerecord klass, name # :nodoc:
|
666
|
+
self.reporters.each do |reporter|
|
667
|
+
reporter.prerecord klass, name
|
668
|
+
end
|
669
|
+
end
|
670
|
+
|
651
671
|
def record result # :nodoc:
|
652
672
|
self.reporters.each do |reporter|
|
653
673
|
reporter.record result
|
@@ -785,9 +805,11 @@ module Minitest
|
|
785
805
|
|
786
806
|
return bt.dup if $DEBUG
|
787
807
|
|
788
|
-
|
789
|
-
|
790
|
-
new_bt = bt.
|
808
|
+
mt_re = %r%lib/minitest%
|
809
|
+
|
810
|
+
new_bt = bt.take_while { |line| line !~ mt_re }
|
811
|
+
new_bt = bt.select { |line| line !~ mt_re } if new_bt.empty?
|
812
|
+
new_bt = bt.dup if new_bt.empty?
|
791
813
|
|
792
814
|
new_bt
|
793
815
|
end
|
@@ -801,7 +823,9 @@ module Minitest
|
|
801
823
|
result
|
802
824
|
end
|
803
825
|
|
804
|
-
|
826
|
+
# :stopdoc:
|
827
|
+
|
828
|
+
if defined? Process::CLOCK_MONOTONIC # :nodoc:
|
805
829
|
def self.clock_time
|
806
830
|
Process.clock_gettime Process::CLOCK_MONOTONIC
|
807
831
|
end
|
@@ -810,6 +834,8 @@ module Minitest
|
|
810
834
|
Time.now
|
811
835
|
end
|
812
836
|
end
|
837
|
+
|
838
|
+
# :startdoc:
|
813
839
|
end
|
814
840
|
|
815
841
|
require "minitest/test"
|
data/lib/minitest/assertions.rb
CHANGED
@@ -171,7 +171,17 @@ module Minitest
|
|
171
171
|
|
172
172
|
def assert_equal exp, act, msg = nil
|
173
173
|
msg = message(msg, E) { diff exp, act }
|
174
|
-
assert exp == act, msg
|
174
|
+
result = assert exp == act, msg
|
175
|
+
|
176
|
+
if exp.nil? then
|
177
|
+
if Minitest::VERSION =~ /^6/ then
|
178
|
+
refute_nil exp, "Use assert_nil if expecting nil."
|
179
|
+
else
|
180
|
+
$stderr.puts "Use assert_nil if expecting nil from #{caller.first}. This will fail in MT6."
|
181
|
+
end
|
182
|
+
end
|
183
|
+
|
184
|
+
result
|
175
185
|
end
|
176
186
|
|
177
187
|
##
|
@@ -357,6 +367,8 @@ module Minitest
|
|
357
367
|
# Fails unless the call returns a true value
|
358
368
|
|
359
369
|
def assert_send send_ary, m = nil
|
370
|
+
warn "DEPRECATED: assert_send. From #{caller.first}"
|
371
|
+
|
360
372
|
recv, msg, *args = send_ary
|
361
373
|
m = message(m) {
|
362
374
|
"Expected #{mu_pp(recv)}.#{msg}(*#{mu_pp(args)}) to return true" }
|
@@ -386,8 +398,10 @@ module Minitest
|
|
386
398
|
rescue ThreadError => e # wtf?!? 1.8 + threads == suck
|
387
399
|
default += ", not \:#{e.message[/uncaught throw \`(\w+?)\'/, 1]}"
|
388
400
|
rescue ArgumentError => e # 1.9 exception
|
401
|
+
raise e unless e.message.include?("uncaught throw")
|
389
402
|
default += ", not #{e.message.split(/ /).last}"
|
390
403
|
rescue NameError => e # 1.8 exception
|
404
|
+
raise e unless e.name == sym
|
391
405
|
default += ", not #{e.name.inspect}"
|
392
406
|
end
|
393
407
|
caught = false
|
data/lib/minitest/benchmark.rb
CHANGED
data/lib/minitest/mock.rb
CHANGED
@@ -37,7 +37,7 @@ module Minitest # :nodoc:
|
|
37
37
|
end
|
38
38
|
end
|
39
39
|
|
40
|
-
def initialize
|
40
|
+
def initialize delegator = nil # :nodoc:
|
41
41
|
@delegator = delegator
|
42
42
|
@expected_calls = Hash.new { |calls, name| calls[name] = [] }
|
43
43
|
@actual_calls = Hash.new { |calls, name| calls[name] = [] }
|
@@ -67,7 +67,7 @@ module Minitest # :nodoc:
|
|
67
67
|
# @mock.expect(:uses_one_string, true, ["foo"])
|
68
68
|
# @mock.uses_one_string("bar") # => raises MockExpectationError
|
69
69
|
|
70
|
-
def expect
|
70
|
+
def expect name, retval, args = [], &blk
|
71
71
|
name = name.to_sym
|
72
72
|
|
73
73
|
if block_given?
|
@@ -104,7 +104,7 @@ module Minitest # :nodoc:
|
|
104
104
|
true
|
105
105
|
end
|
106
106
|
|
107
|
-
def method_missing
|
107
|
+
def method_missing sym, *args, &block # :nodoc:
|
108
108
|
unless @expected_calls.key?(sym) then
|
109
109
|
if @delegator && @delegator.respond_to?(sym)
|
110
110
|
return @delegator.public_send(sym, *args, &block)
|
@@ -158,7 +158,7 @@ module Minitest # :nodoc:
|
|
158
158
|
retval
|
159
159
|
end
|
160
160
|
|
161
|
-
def respond_to?
|
161
|
+
def respond_to? sym, include_private = false # :nodoc:
|
162
162
|
return true if @expected_calls.key? sym.to_sym
|
163
163
|
return true if @delegator && @delegator.respond_to?(sym, include_private)
|
164
164
|
__respond_to?(sym, include_private)
|
data/lib/minitest/parallel.rb
CHANGED
data/lib/minitest/spec.rb
CHANGED
data/lib/minitest/test.rb
CHANGED
data/lib/minitest/unit.rb
CHANGED
@@ -8,6 +8,17 @@ class Minitest::Test
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
class FakeNamedTest < Minitest::Test
|
12
|
+
@@count = 0
|
13
|
+
|
14
|
+
def self.name
|
15
|
+
@fake_name ||= begin
|
16
|
+
@@count += 1
|
17
|
+
"FakeNamedTest%02d" % @@count
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
11
22
|
class MetaMetaMetaTestCase < Minitest::Test
|
12
23
|
attr_accessor :reporter, :output, :tu
|
13
24
|
|
@@ -174,10 +174,10 @@ class TestMinitestMock < Minitest::Test
|
|
174
174
|
end
|
175
175
|
|
176
176
|
def test_mock_is_a_blank_slate
|
177
|
-
@mock.expect :kind_of?, true, [
|
177
|
+
@mock.expect :kind_of?, true, [String]
|
178
178
|
@mock.expect :==, true, [1]
|
179
179
|
|
180
|
-
assert @mock.kind_of?(
|
180
|
+
assert @mock.kind_of?(String), "didn't mock :kind_of\?"
|
181
181
|
assert @mock == 1, "didn't mock :=="
|
182
182
|
end
|
183
183
|
|
@@ -473,11 +473,11 @@ class TestMinitestStub < Minitest::Test
|
|
473
473
|
@assertion_count = 2
|
474
474
|
|
475
475
|
dynamic = Class.new do
|
476
|
-
def self.respond_to?
|
476
|
+
def self.respond_to? meth
|
477
477
|
meth == :found
|
478
478
|
end
|
479
479
|
|
480
|
-
def self.method_missing
|
480
|
+
def self.method_missing meth, *args, &block
|
481
481
|
if meth == :found
|
482
482
|
false
|
483
483
|
else
|
@@ -501,8 +501,8 @@ class TestMinitestStub < Minitest::Test
|
|
501
501
|
end
|
502
502
|
rs = nil
|
503
503
|
|
504
|
-
File.stub
|
505
|
-
File.open
|
504
|
+
File.stub :open, true, mock do
|
505
|
+
File.open "foo.txt", "r" do |f|
|
506
506
|
rs = f.write
|
507
507
|
end
|
508
508
|
end
|
@@ -12,6 +12,9 @@ class ExampleA; end
|
|
12
12
|
class ExampleB < ExampleA; end
|
13
13
|
|
14
14
|
describe Minitest::Spec do
|
15
|
+
# helps to deal with 2.4 deprecation of Fixnum for Integer
|
16
|
+
Int = 1.class
|
17
|
+
|
15
18
|
# do not parallelize this suite... it just can"t handle it.
|
16
19
|
|
17
20
|
def assert_triggered expected = "blah", klass = Minitest::Assertion
|
@@ -115,7 +118,7 @@ describe Minitest::Spec do
|
|
115
118
|
@assertion_count -= 1 # no msg
|
116
119
|
@assertion_count += 2 # assert_output is 2 assertions
|
117
120
|
|
118
|
-
proc {
|
121
|
+
proc {}.must_be_silent.must_equal true
|
119
122
|
|
120
123
|
assert_triggered "In stdout.\nExpected: \"\"\n Actual: \"xxx\"" do
|
121
124
|
proc { print "xxx" }.must_be_silent
|
@@ -304,7 +307,7 @@ describe Minitest::Spec do
|
|
304
307
|
it "needs to verify inequality" do
|
305
308
|
@assertion_count += 2
|
306
309
|
42.wont_equal(6 * 9).must_equal false
|
307
|
-
proc{}.wont_equal(42).must_equal false
|
310
|
+
proc {}.wont_equal(42).must_equal false
|
308
311
|
|
309
312
|
assert_triggered "Expected 1 to not be equal to 1." do
|
310
313
|
1.wont_equal 1
|
@@ -318,12 +321,12 @@ describe Minitest::Spec do
|
|
318
321
|
it "needs to verify instances of a class" do
|
319
322
|
42.wont_be_instance_of(String).must_equal false
|
320
323
|
|
321
|
-
assert_triggered "Expected 42 to not be
|
322
|
-
42.
|
324
|
+
assert_triggered "Expected 42 to not be a kind of #{Int.name}." do
|
325
|
+
42.wont_be_kind_of Int
|
323
326
|
end
|
324
327
|
|
325
|
-
assert_triggered "msg.\nExpected 42 to not be an instance of
|
326
|
-
42.wont_be_instance_of
|
328
|
+
assert_triggered "msg.\nExpected 42 to not be an instance of #{Int.name}." do
|
329
|
+
42.wont_be_instance_of Int, "msg"
|
327
330
|
end
|
328
331
|
end
|
329
332
|
|
@@ -331,34 +334,34 @@ describe Minitest::Spec do
|
|
331
334
|
@assertion_count += 2
|
332
335
|
|
333
336
|
42.wont_be_kind_of(String).must_equal false
|
334
|
-
proc{}.wont_be_kind_of(String).must_equal false
|
337
|
+
proc {}.wont_be_kind_of(String).must_equal false
|
335
338
|
|
336
|
-
assert_triggered "Expected 42 to not be a kind of
|
337
|
-
42.wont_be_kind_of
|
339
|
+
assert_triggered "Expected 42 to not be a kind of #{Int.name}." do
|
340
|
+
42.wont_be_kind_of Int
|
338
341
|
end
|
339
342
|
|
340
|
-
assert_triggered "msg.\nExpected 42 to not be a kind of
|
341
|
-
42.wont_be_kind_of
|
343
|
+
assert_triggered "msg.\nExpected 42 to not be a kind of #{Int.name}." do
|
344
|
+
42.wont_be_kind_of Int, "msg"
|
342
345
|
end
|
343
346
|
end
|
344
347
|
|
345
348
|
it "needs to verify kinds of objects" do
|
346
349
|
@assertion_count += 3 # extra test
|
347
350
|
|
348
|
-
(6 * 7).must_be_kind_of(
|
351
|
+
(6 * 7).must_be_kind_of(Int).must_equal true
|
349
352
|
(6 * 7).must_be_kind_of(Numeric).must_equal true
|
350
353
|
|
351
|
-
assert_triggered "Expected 42 to be a kind of String, not
|
354
|
+
assert_triggered "Expected 42 to be a kind of String, not #{Int.name}." do
|
352
355
|
(6 * 7).must_be_kind_of String
|
353
356
|
end
|
354
357
|
|
355
|
-
assert_triggered "msg.\nExpected 42 to be a kind of String, not
|
358
|
+
assert_triggered "msg.\nExpected 42 to be a kind of String, not #{Int.name}." do
|
356
359
|
(6 * 7).must_be_kind_of String, "msg"
|
357
360
|
end
|
358
361
|
|
359
362
|
exp = "Expected #<Proc:0xXXXXXX@PATH> to be a kind of String, not Proc."
|
360
363
|
assert_triggered exp do
|
361
|
-
proc{}.must_be_kind_of String
|
364
|
+
proc {}.must_be_kind_of String
|
362
365
|
end
|
363
366
|
end
|
364
367
|
|
@@ -502,7 +505,7 @@ describe Minitest::Spec do
|
|
502
505
|
proc { throw :blah }.must_throw(:blah).must_equal true
|
503
506
|
|
504
507
|
assert_triggered "Expected :blah to have been thrown." do
|
505
|
-
proc {
|
508
|
+
proc {}.must_throw :blah
|
506
509
|
end
|
507
510
|
|
508
511
|
assert_triggered "Expected :blah to have been thrown, not :xxx." do
|
@@ -510,7 +513,7 @@ describe Minitest::Spec do
|
|
510
513
|
end
|
511
514
|
|
512
515
|
assert_triggered "msg.\nExpected :blah to have been thrown." do
|
513
|
-
proc {
|
516
|
+
proc {}.must_throw :blah, "msg"
|
514
517
|
end
|
515
518
|
|
516
519
|
assert_triggered "msg.\nExpected :blah to have been thrown, not :xxx." do
|
@@ -519,9 +522,9 @@ describe Minitest::Spec do
|
|
519
522
|
end
|
520
523
|
|
521
524
|
it "needs to verify types of objects" do
|
522
|
-
(6 * 7).must_be_instance_of(
|
525
|
+
(6 * 7).must_be_instance_of(Int).must_equal true
|
523
526
|
|
524
|
-
exp = "Expected 42 to be an instance of String, not
|
527
|
+
exp = "Expected 42 to be an instance of String, not #{Int.name}."
|
525
528
|
|
526
529
|
assert_triggered exp do
|
527
530
|
(6 * 7).must_be_instance_of String
|
@@ -565,11 +568,11 @@ describe Minitest::Spec do
|
|
565
568
|
it "needs to verify using respond_to" do
|
566
569
|
42.must_respond_to(:+).must_equal true
|
567
570
|
|
568
|
-
assert_triggered "Expected 42 (
|
571
|
+
assert_triggered "Expected 42 (#{Int.name}) to respond to #clear." do
|
569
572
|
42.must_respond_to :clear
|
570
573
|
end
|
571
574
|
|
572
|
-
assert_triggered "msg.\nExpected 42 (
|
575
|
+
assert_triggered "msg.\nExpected 42 (#{Int.name}) to respond to #clear." do
|
573
576
|
42.must_respond_to :clear, "msg"
|
574
577
|
end
|
575
578
|
end
|
@@ -626,7 +629,7 @@ describe Minitest::Spec, :let do
|
|
626
629
|
end
|
627
630
|
|
628
631
|
it "procs come after dont_flip" do
|
629
|
-
p = proc {
|
632
|
+
p = proc {}
|
630
633
|
assert_respond_to p, :call
|
631
634
|
p.must_respond_to :call
|
632
635
|
end
|
@@ -947,21 +950,21 @@ class ValueMonadTest < Minitest::Test
|
|
947
950
|
attr_accessor :struct
|
948
951
|
|
949
952
|
def setup
|
950
|
-
@struct = { :_ =>
|
953
|
+
@struct = { :_ => "a", :value => "b", :expect => "c" }
|
951
954
|
def @struct.method_missing k # think openstruct
|
952
955
|
self[k]
|
953
956
|
end
|
954
957
|
end
|
955
958
|
|
956
959
|
def test_value_monad_method
|
957
|
-
assert_equal
|
960
|
+
assert_equal "a", struct._
|
958
961
|
end
|
959
962
|
|
960
963
|
def test_value_monad_value_alias
|
961
|
-
assert_equal
|
964
|
+
assert_equal "b", struct.value
|
962
965
|
end
|
963
966
|
|
964
967
|
def test_value_monad_expect_alias
|
965
|
-
assert_equal
|
968
|
+
assert_equal "c", struct.expect
|
966
969
|
end
|
967
970
|
end
|
@@ -67,7 +67,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
|
|
67
67
|
# end
|
68
68
|
|
69
69
|
def test_passed_eh_teardown_good
|
70
|
-
test_class = Class.new
|
70
|
+
test_class = Class.new FakeNamedTest do
|
71
71
|
def teardown; assert true; end
|
72
72
|
def test_omg; assert true; end
|
73
73
|
end
|
@@ -78,7 +78,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
|
|
78
78
|
end
|
79
79
|
|
80
80
|
def test_passed_eh_teardown_skipped
|
81
|
-
test_class = Class.new
|
81
|
+
test_class = Class.new FakeNamedTest do
|
82
82
|
def teardown; assert true; end
|
83
83
|
def test_omg; skip "bork"; end
|
84
84
|
end
|
@@ -91,7 +91,7 @@ class TestMinitestUnit < MetaMetaMetaTestCase
|
|
91
91
|
end
|
92
92
|
|
93
93
|
def test_passed_eh_teardown_flunked
|
94
|
-
test_class = Class.new
|
94
|
+
test_class = Class.new FakeNamedTest do
|
95
95
|
def teardown; flunk; end
|
96
96
|
def test_omg; assert true; end
|
97
97
|
end
|
@@ -138,7 +138,7 @@ class TestMinitestUnitInherited < MetaMetaMetaTestCase
|
|
138
138
|
def test_inherited_hook_plays_nice_with_others
|
139
139
|
with_overridden_include do
|
140
140
|
assert_throws :inherited_hook do
|
141
|
-
Class.new
|
141
|
+
Class.new FakeNamedTest
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
@@ -158,7 +158,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
158
158
|
|
159
159
|
def test_run_test
|
160
160
|
@tu =
|
161
|
-
Class.new
|
161
|
+
Class.new FakeNamedTest do
|
162
162
|
attr_reader :foo
|
163
163
|
|
164
164
|
def run
|
@@ -187,7 +187,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
187
187
|
|
188
188
|
def test_run_error
|
189
189
|
@tu =
|
190
|
-
Class.new
|
190
|
+
Class.new FakeNamedTest do
|
191
191
|
def test_something
|
192
192
|
assert true
|
193
193
|
end
|
@@ -215,7 +215,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
215
215
|
|
216
216
|
def test_run_error_teardown
|
217
217
|
@tu =
|
218
|
-
Class.new
|
218
|
+
Class.new FakeNamedTest do
|
219
219
|
def test_something
|
220
220
|
assert true
|
221
221
|
end
|
@@ -261,7 +261,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
261
261
|
|
262
262
|
def setup_basic_tu
|
263
263
|
@tu =
|
264
|
-
Class.new
|
264
|
+
Class.new FakeNamedTest do
|
265
265
|
def test_something
|
266
266
|
assert true
|
267
267
|
end
|
@@ -289,14 +289,14 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
289
289
|
def assert_filtering filter, name, expected, a = false
|
290
290
|
args = %W[--#{filter} #{name} --seed 42]
|
291
291
|
|
292
|
-
alpha = Class.new
|
292
|
+
alpha = Class.new FakeNamedTest do
|
293
293
|
define_method :test_something do
|
294
294
|
assert a
|
295
295
|
end
|
296
296
|
end
|
297
297
|
Object.const_set(:Alpha, alpha)
|
298
298
|
|
299
|
-
beta = Class.new
|
299
|
+
beta = Class.new FakeNamedTest do
|
300
300
|
define_method :test_something do
|
301
301
|
assert true
|
302
302
|
end
|
@@ -320,7 +320,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
320
320
|
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
|
321
321
|
EOM
|
322
322
|
|
323
|
-
assert_filtering
|
323
|
+
assert_filtering "name", "/Beta#test_something/", expected
|
324
324
|
end
|
325
325
|
|
326
326
|
def test_run_filtered_including_suite_name_string
|
@@ -332,7 +332,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
332
332
|
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
|
333
333
|
EOM
|
334
334
|
|
335
|
-
assert_filtering
|
335
|
+
assert_filtering "name", "Beta#test_something", expected
|
336
336
|
end
|
337
337
|
|
338
338
|
def test_run_filtered_string_method_only
|
@@ -344,7 +344,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
344
344
|
2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
|
345
345
|
EOM
|
346
346
|
|
347
|
-
assert_filtering
|
347
|
+
assert_filtering "name", "test_something", expected, :pass
|
348
348
|
end
|
349
349
|
|
350
350
|
def test_run_failing_excluded
|
@@ -370,7 +370,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
370
370
|
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
|
371
371
|
EOM
|
372
372
|
|
373
|
-
assert_filtering
|
373
|
+
assert_filtering "exclude", "/Alpha#test_something/", expected
|
374
374
|
end
|
375
375
|
|
376
376
|
def test_run_filtered_excluding_suite_name_string
|
@@ -382,7 +382,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
382
382
|
1 runs, 1 assertions, 0 failures, 0 errors, 0 skips
|
383
383
|
EOM
|
384
384
|
|
385
|
-
assert_filtering
|
385
|
+
assert_filtering "exclude", "Alpha#test_something", expected
|
386
386
|
end
|
387
387
|
|
388
388
|
def test_run_filtered_excluding_string_method_only
|
@@ -394,12 +394,12 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
394
394
|
0 runs, 0 assertions, 0 failures, 0 errors, 0 skips
|
395
395
|
EOM
|
396
396
|
|
397
|
-
assert_filtering
|
397
|
+
assert_filtering "exclude", "test_something", expected, :pass
|
398
398
|
end
|
399
399
|
|
400
400
|
def test_run_passing
|
401
401
|
@tu =
|
402
|
-
Class.new
|
402
|
+
Class.new FakeNamedTest do
|
403
403
|
def test_something
|
404
404
|
assert true
|
405
405
|
end
|
@@ -418,7 +418,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
418
418
|
|
419
419
|
def test_run_skip
|
420
420
|
@tu =
|
421
|
-
Class.new
|
421
|
+
Class.new FakeNamedTest do
|
422
422
|
def test_something
|
423
423
|
assert true
|
424
424
|
end
|
@@ -445,7 +445,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
445
445
|
|
446
446
|
def test_run_skip_verbose
|
447
447
|
@tu =
|
448
|
-
Class.new
|
448
|
+
Class.new FakeNamedTest do
|
449
449
|
def test_something
|
450
450
|
assert true
|
451
451
|
end
|
@@ -473,7 +473,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
473
473
|
|
474
474
|
def test_run_with_other_runner
|
475
475
|
@tu =
|
476
|
-
Class.new
|
476
|
+
Class.new FakeNamedTest do
|
477
477
|
def self.run reporter, options = {}
|
478
478
|
@reporter = reporter
|
479
479
|
before_my_suite
|
@@ -548,7 +548,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
|
|
548
548
|
}
|
549
549
|
|
550
550
|
@tu =
|
551
|
-
Class.new
|
551
|
+
Class.new FakeNamedTest do
|
552
552
|
parallelize_me!
|
553
553
|
|
554
554
|
test_count.times do |i|
|
@@ -596,7 +596,7 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
|
|
596
596
|
def test_before_setup
|
597
597
|
call_order = []
|
598
598
|
@tu =
|
599
|
-
Class.new
|
599
|
+
Class.new FakeNamedTest do
|
600
600
|
define_method :setup do
|
601
601
|
super()
|
602
602
|
call_order << :setup
|
@@ -618,7 +618,7 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
|
|
618
618
|
def test_after_teardown
|
619
619
|
call_order = []
|
620
620
|
@tu =
|
621
|
-
Class.new
|
621
|
+
Class.new FakeNamedTest do
|
622
622
|
define_method :teardown do
|
623
623
|
super()
|
624
624
|
call_order << :teardown
|
@@ -640,7 +640,7 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
|
|
640
640
|
def test_all_teardowns_are_guaranteed_to_run
|
641
641
|
call_order = []
|
642
642
|
@tu =
|
643
|
-
Class.new
|
643
|
+
Class.new FakeNamedTest do
|
644
644
|
define_method :after_teardown do
|
645
645
|
super()
|
646
646
|
call_order << :after_teardown
|
@@ -671,7 +671,7 @@ class TestMinitestUnitOrder < MetaMetaMetaTestCase
|
|
671
671
|
def test_setup_and_teardown_survive_inheritance
|
672
672
|
call_order = []
|
673
673
|
|
674
|
-
@tu = Class.new
|
674
|
+
@tu = Class.new FakeNamedTest do
|
675
675
|
define_method :setup do
|
676
676
|
call_order << :setup_method
|
677
677
|
end
|
@@ -979,6 +979,29 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
979
979
|
end
|
980
980
|
end
|
981
981
|
|
982
|
+
def test_assert_equal_does_not_allow_lhs_nil
|
983
|
+
if Minitest::VERSION =~ /^6/ then
|
984
|
+
warn "Time to strip the MT5 test"
|
985
|
+
|
986
|
+
@assertion_count += 1
|
987
|
+
assert_triggered(/Use assert_nil if expecting nil/) do
|
988
|
+
@tc.assert_equal nil, nil
|
989
|
+
end
|
990
|
+
else
|
991
|
+
err_re = /Use assert_nil if expecting nil from .*test_minitest_test.rb/
|
992
|
+
|
993
|
+
assert_output "", err_re do
|
994
|
+
@tc.assert_equal nil, nil
|
995
|
+
end
|
996
|
+
end
|
997
|
+
end
|
998
|
+
|
999
|
+
def test_assert_equal_does_not_allow_lhs_nil_triggered
|
1000
|
+
assert_triggered "Expected: nil\n Actual: false" do
|
1001
|
+
@tc.assert_equal nil, false
|
1002
|
+
end
|
1003
|
+
end
|
1004
|
+
|
982
1005
|
def test_assert_in_delta
|
983
1006
|
@tc.assert_in_delta 0.0, 1.0 / 1000, 0.1
|
984
1007
|
end
|
@@ -1088,7 +1111,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1088
1111
|
@assertion_count = 2
|
1089
1112
|
|
1090
1113
|
pattern = Object.new
|
1091
|
-
def pattern.=~
|
1114
|
+
def pattern.=~ _; true end
|
1092
1115
|
|
1093
1116
|
@tc.assert_match pattern, 5
|
1094
1117
|
end
|
@@ -1106,7 +1129,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1106
1129
|
@assertion_count = 2
|
1107
1130
|
|
1108
1131
|
pattern = Object.new
|
1109
|
-
def pattern.=~
|
1132
|
+
def pattern.=~ _; false end
|
1110
1133
|
def pattern.inspect; "[Object]" end
|
1111
1134
|
|
1112
1135
|
assert_triggered "Expected [Object] to match 5." do
|
@@ -1137,7 +1160,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1137
1160
|
|
1138
1161
|
def test_assert_operator_bad_object
|
1139
1162
|
bad = Object.new
|
1140
|
-
def bad.==
|
1163
|
+
def bad.== _; true end
|
1141
1164
|
|
1142
1165
|
@tc.assert_operator bad, :equal?, bad
|
1143
1166
|
end
|
@@ -1424,13 +1447,24 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1424
1447
|
end
|
1425
1448
|
end
|
1426
1449
|
|
1450
|
+
def assert_deprecated name
|
1451
|
+
dep = /DEPRECATED: #{name}. From #{__FILE__}:\d+:.*?/
|
1452
|
+
assert_output nil, dep do
|
1453
|
+
yield
|
1454
|
+
end
|
1455
|
+
end
|
1456
|
+
|
1427
1457
|
def test_assert_send
|
1428
|
-
|
1458
|
+
assert_deprecated :assert_send do
|
1459
|
+
@tc.assert_send [1, :<, 2]
|
1460
|
+
end
|
1429
1461
|
end
|
1430
1462
|
|
1431
1463
|
def test_assert_send_bad
|
1432
|
-
|
1433
|
-
|
1464
|
+
assert_deprecated :assert_send do
|
1465
|
+
assert_triggered "Expected 1.>(*[2]) to return true." do
|
1466
|
+
@tc.assert_send [1, :>, 2]
|
1467
|
+
end
|
1434
1468
|
end
|
1435
1469
|
end
|
1436
1470
|
|
@@ -1466,6 +1500,22 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1466
1500
|
end
|
1467
1501
|
end
|
1468
1502
|
|
1503
|
+
def test_assert_throws_name_error
|
1504
|
+
@tc.assert_raises NameError do
|
1505
|
+
@tc.assert_throws :blah do
|
1506
|
+
raise NameError
|
1507
|
+
end
|
1508
|
+
end
|
1509
|
+
end
|
1510
|
+
|
1511
|
+
def test_assert_throws_argument_exception
|
1512
|
+
@tc.assert_raises ArgumentError do
|
1513
|
+
@tc.assert_throws :blah do
|
1514
|
+
raise ArgumentError
|
1515
|
+
end
|
1516
|
+
end
|
1517
|
+
end
|
1518
|
+
|
1469
1519
|
def test_assert_throws_different
|
1470
1520
|
assert_triggered "Expected :blah to have been thrown, not :not_blah." do
|
1471
1521
|
@tc.assert_throws :blah do
|
@@ -1696,7 +1746,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1696
1746
|
@assertion_count = 2
|
1697
1747
|
|
1698
1748
|
pattern = Object.new
|
1699
|
-
def pattern.=~
|
1749
|
+
def pattern.=~ _; true end
|
1700
1750
|
def pattern.inspect; "[Object]" end
|
1701
1751
|
|
1702
1752
|
assert_triggered "Expected [Object] to not match 5." do
|
@@ -1737,7 +1787,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1737
1787
|
|
1738
1788
|
def test_refute_operator_bad_object
|
1739
1789
|
bad = Object.new
|
1740
|
-
def bad.==
|
1790
|
+
def bad.== _; true end
|
1741
1791
|
|
1742
1792
|
@tc.refute_operator true, :equal?, bad
|
1743
1793
|
end
|
@@ -1779,7 +1829,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1779
1829
|
def test_runnable_methods_random
|
1780
1830
|
@assertion_count = 0
|
1781
1831
|
|
1782
|
-
sample_test_case = Class.new
|
1832
|
+
sample_test_case = Class.new FakeNamedTest do
|
1783
1833
|
def self.test_order; :random; end
|
1784
1834
|
def test_test1; assert "does not matter" end
|
1785
1835
|
def test_test2; assert "does not matter" end
|
@@ -1799,7 +1849,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1799
1849
|
def test_runnable_methods_sorted
|
1800
1850
|
@assertion_count = 0
|
1801
1851
|
|
1802
|
-
sample_test_case = Class.new
|
1852
|
+
sample_test_case = Class.new FakeNamedTest do
|
1803
1853
|
def self.test_order; :sorted end
|
1804
1854
|
def test_test3; assert "does not matter" end
|
1805
1855
|
def test_test2; assert "does not matter" end
|
@@ -1813,7 +1863,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1813
1863
|
def test_i_suck_and_my_tests_are_order_dependent_bang_sets_test_order_alpha
|
1814
1864
|
@assertion_count = 0
|
1815
1865
|
|
1816
|
-
shitty_test_case = Class.new
|
1866
|
+
shitty_test_case = Class.new FakeNamedTest
|
1817
1867
|
|
1818
1868
|
shitty_test_case.i_suck_and_my_tests_are_order_dependent!
|
1819
1869
|
|
@@ -1823,7 +1873,7 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1823
1873
|
def test_i_suck_and_my_tests_are_order_dependent_bang_does_not_warn
|
1824
1874
|
@assertion_count = 0
|
1825
1875
|
|
1826
|
-
shitty_test_case = Class.new
|
1876
|
+
shitty_test_case = Class.new FakeNamedTest
|
1827
1877
|
|
1828
1878
|
def shitty_test_case.test_order; :lol end
|
1829
1879
|
|
@@ -1841,7 +1891,8 @@ class TestMinitestUnitTestCase < Minitest::Test
|
|
1841
1891
|
msg.gsub!(/\(oid=[-0-9]+\)/, "(oid=N)")
|
1842
1892
|
msg.gsub!(/(\d\.\d{6})\d+/, '\1xxx') # normalize: ruby version, impl, platform
|
1843
1893
|
|
1844
|
-
|
1894
|
+
assert_msg = Regexp === expected ? :assert_match : :assert_equal
|
1895
|
+
self.send assert_msg, expected, msg
|
1845
1896
|
end
|
1846
1897
|
|
1847
1898
|
def util_msg exp, act, msg = nil
|
@@ -1887,8 +1938,8 @@ end
|
|
1887
1938
|
class TestMinitestUnitRecording < MetaMetaMetaTestCase
|
1888
1939
|
# do not parallelize this suite... it just can't handle it.
|
1889
1940
|
|
1890
|
-
def assert_run_record
|
1891
|
-
@tu = Class.new
|
1941
|
+
def assert_run_record *expected, &block
|
1942
|
+
@tu = Class.new FakeNamedTest, &block
|
1892
1943
|
|
1893
1944
|
run_tu_with_fresh_reporter
|
1894
1945
|
|
@@ -1946,7 +1997,7 @@ class TestMinitestUnitRecording < MetaMetaMetaTestCase
|
|
1946
1997
|
end
|
1947
1998
|
|
1948
1999
|
def test_to_s_error_in_test_and_teardown
|
1949
|
-
@tu = Class.new
|
2000
|
+
@tu = Class.new FakeNamedTest do
|
1950
2001
|
def test_method
|
1951
2002
|
raise AnError
|
1952
2003
|
end
|
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.
|
4
|
+
version: 5.10.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Davis
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
30
30
|
E4oJcnPkJAr0rw504JGtlZtONZQblwmRJOIdXzolaE3NRGUzGVOUSptZppAKiavY
|
31
31
|
fO6tdKQc/5RfA8oQEkg8hrxA5PQSz4TOFJGLpFvIapEk6tMruQ0bHgkhr9auXg==
|
32
32
|
-----END CERTIFICATE-----
|
33
|
-
date: 2016-
|
33
|
+
date: 2016-12-01 00:00:00.000000000 Z
|
34
34
|
dependencies:
|
35
35
|
- !ruby/object:Gem::Dependency
|
36
36
|
name: rdoc
|
metadata.gz.sig
CHANGED
Binary file
|