spec 5.0.19 → 5.3.3

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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/History.txt +106 -0
  3. data/Manifest.txt +1 -1
  4. data/README.txt +83 -37
  5. data/Rakefile +3 -56
  6. data/lib/minitest.rb +58 -156
  7. data/lib/minitest/assertions.rb +13 -1
  8. data/lib/minitest/benchmark.rb +3 -3
  9. data/lib/minitest/hell.rb +1 -1
  10. data/lib/minitest/mock.rb +2 -2
  11. data/lib/minitest/parallel.rb +40 -0
  12. data/lib/minitest/pride_plugin.rb +1 -2
  13. data/lib/minitest/spec.rb +23 -22
  14. data/lib/minitest/test.rb +19 -8
  15. data/lib/spec.rb +156 -2
  16. data/readme.md +1 -1
  17. data/spec.gemspec +2 -2
  18. data/test/manual/simple.rb +10 -15
  19. data/test/minitest/metametameta.rb +4 -2
  20. data/test/minitest/test_minitest_benchmark.rb +7 -1
  21. data/test/minitest/test_minitest_mock.rb +12 -2
  22. data/test/minitest/test_minitest_reporter.rb +0 -1
  23. data/test/minitest/test_minitest_spec.rb +41 -4
  24. data/test/minitest/test_minitest_unit.rb +38 -20
  25. metadata +15 -37
  26. data/lib/minitest/parallel_each.rb +0 -120
  27. data/release_notes.md +0 -80
  28. data/test/manual/after_run.rb +0 -17
  29. data/test/manual/appium.rb +0 -14
  30. data/test/manual/appium_after_last.rb +0 -24
  31. data/test/manual/appium_before_first.rb +0 -23
  32. data/test/manual/assert.rb +0 -61
  33. data/test/manual/before_first_0.rb +0 -27
  34. data/test/manual/before_first_1.rb +0 -29
  35. data/test/manual/ctrl_c.rb +0 -11
  36. data/test/manual/debug.rb +0 -37
  37. data/test/manual/do_end.rb +0 -31
  38. data/test/manual/raise.rb +0 -61
  39. data/test/manual/run2.rb +0 -74
  40. data/test/manual/run3.rb +0 -91
  41. data/test/manual/setup.rb +0 -13
  42. data/test/manual/simple2.rb +0 -20
  43. data/test/manual/skip.rb +0 -15
  44. data/test/manual/t.rb +0 -11
  45. data/test/manual/trace.rb +0 -19
  46. data/test/manual/trace2.rb +0 -15
  47. data/test/minitest/test_helper.rb +0 -20
data/readme.md CHANGED
@@ -4,4 +4,4 @@ A modified [MiniTest](https://github.com/seattlerb/minitest) for Appium.
4
4
 
5
5
  - `rake install` - Uninstall old gem, build gem, install new gem.
6
6
  - `rake test` - Run the tests
7
- - `rake rel` - Release new `spec` to GitHub and RubyGems.
7
+ - `rake rel` - Release new `spec` to GitHub and RubyGems.
@@ -1,9 +1,9 @@
1
1
  # encoding: utf-8
2
2
 
3
3
  def self.add_to_path path
4
- path = File.expand_path "../#{path}/", __FILE__
4
+ path = File.expand_path "../#{path}/", __FILE__
5
5
 
6
- $:.unshift path unless $:.include? path
6
+ $:.unshift path unless $:.include? path
7
7
  end
8
8
 
9
9
  add_to_path 'lib'
@@ -1,19 +1,14 @@
1
1
  require 'rubygems'
2
- require 'method_source'
3
-
4
- ary = []
5
-
6
- class Test
7
- def self.run &block
8
- define_method :run_method do
9
- self.instance_eval &block
10
- end
11
-
12
- Test.new.run_method
2
+ require 'spec'
3
+ describe 'test' do
4
+ t 'simple spec test' do
5
+ 1.must_equal 1
13
6
  end
14
7
  end
15
8
 
16
- Test.run do
17
- ary << 1
18
- puts 'complete'
19
- end
9
+ Minitest.after_run do
10
+ puts 'minitest -- after run'
11
+ end
12
+
13
+ trace_files = [File.expand_path(__FILE__)]
14
+ Minitest.run_specs({trace: trace_files})
@@ -22,6 +22,8 @@ class MetaMetaMetaTestCase < Minitest::Test
22
22
 
23
23
  reporter.start
24
24
 
25
+ yield(reporter) if block_given?
26
+
25
27
  @tus ||= [@tu]
26
28
  @tus.each do |tu|
27
29
  Minitest::Runnable.runnables.delete tu
@@ -36,7 +38,7 @@ class MetaMetaMetaTestCase < Minitest::Test
36
38
  reporter.reporters.first
37
39
  end
38
40
 
39
- def assert_report expected, flags = %w[--seed 42]
41
+ def assert_report expected, flags = %w[--seed 42], &block
40
42
  header = clean <<-EOM
41
43
  Run options: #{flags.map { |s| s =~ /\|/ ? s.inspect : s }.join " "}
42
44
 
@@ -44,7 +46,7 @@ class MetaMetaMetaTestCase < Minitest::Test
44
46
 
45
47
  EOM
46
48
 
47
- run_tu_with_fresh_reporter flags
49
+ run_tu_with_fresh_reporter flags, &block
48
50
 
49
51
  output = normalize_output @output.string.dup
50
52
 
@@ -1,6 +1,5 @@
1
1
  require 'minitest/autorun'
2
2
  require 'minitest/benchmark'
3
- require 'minitest/test_helper'
4
3
 
5
4
  ##
6
5
  # Used to verify data:
@@ -129,3 +128,10 @@ class TestMinitestBenchmark < Minitest::Test
129
128
  assert_in_delta exp_b, b
130
129
  end
131
130
  end
131
+
132
+ describe "my class Bench" do
133
+ klass = self
134
+ it "should provide bench methods" do
135
+ klass.must_respond_to :bench
136
+ end
137
+ end
@@ -1,5 +1,4 @@
1
1
  require 'minitest/autorun'
2
- require 'minitest/test_helper'
3
2
 
4
3
  class TestMinitestMock < Minitest::Test
5
4
  parallelize_me!
@@ -110,7 +109,7 @@ class TestMinitestMock < Minitest::Test
110
109
  end
111
110
 
112
111
  def test_expectations_can_be_satisfied_via_public_send
113
- skip if RUBY_VERSION < "1.9"
112
+ skip "Doesn't run on 1.8" if RUBY_VERSION < "1.9"
114
113
 
115
114
  @mock.public_send :foo
116
115
  @mock.public_send :meaning_of_life
@@ -266,6 +265,17 @@ class TestMinitestMock < Minitest::Test
266
265
  assert mock.verify
267
266
  end
268
267
 
268
+ def test_mock_block_is_passed_function_block
269
+ mock = Minitest::Mock.new
270
+ block = proc { 'bar' }
271
+ mock.expect :foo, nil do |arg, &blk|
272
+ arg == 'foo' &&
273
+ blk == block
274
+ end
275
+ mock.foo 'foo', &block
276
+ assert mock.verify
277
+ end
278
+
269
279
  def test_verify_fails_when_mock_block_returns_false
270
280
  mock = Minitest::Mock.new
271
281
  mock.expect :foo, nil do
@@ -1,6 +1,5 @@
1
1
  require "minitest/autorun"
2
2
  require "minitest/metametameta"
3
- require 'minitest/test_helper'
4
3
 
5
4
  class TestMinitestReporter < Minitest::Test
6
5
 
@@ -1,7 +1,6 @@
1
1
  # encoding: utf-8
2
2
  require "minitest/autorun"
3
3
  require "stringio"
4
- require 'minitest/test_helper'
5
4
 
6
5
  class MiniSpecA < Minitest::Spec; end
7
6
  class MiniSpecB < Minitest::Test; extend Minitest::Spec::DSL; end
@@ -554,9 +553,29 @@ describe Minitest::Spec, :let do
554
553
  end
555
554
 
556
555
  it 'raises an error if the name begins with "test"' do
557
- describe "let" do
558
- proc { let(:test_value) { true } }.must_raise ArgumentError
559
- end
556
+ proc { self.class.let(:test_value) { true } }.must_raise ArgumentError
557
+ end
558
+
559
+ it 'raises an error if the name shadows a normal instance method' do
560
+ proc { self.class.let(:message) { true } }.must_raise ArgumentError
561
+ end
562
+
563
+ it "doesn't raise an error if it is just another let" do
564
+ proc do
565
+ describe :outer do
566
+ let(:bar)
567
+ describe :inner do
568
+ let(:bar)
569
+ end
570
+ end
571
+ :good
572
+ end.call.must_equal :good
573
+ end
574
+
575
+ it 'procs come after dont_flip' do
576
+ p = proc{ }
577
+ assert_respond_to p, :call
578
+ p.must_respond_to :call
560
579
  end
561
580
  end
562
581
 
@@ -662,6 +681,24 @@ class TestMeta < MetaMetaMetaTestCase
662
681
  Minitest::Spec::TYPES.replace original_types
663
682
  end
664
683
 
684
+ def test_bug_dsl_expectations
685
+ spec_class = Class.new MiniSpecB do
686
+ it "should work" do
687
+ 0.must_equal 0
688
+ end
689
+ end
690
+
691
+ test_name = spec_class.instance_methods.sort.grep(/test/).first
692
+
693
+ spec = spec_class.new test_name
694
+
695
+ result = spec.run
696
+
697
+ assert spec.passed?
698
+ assert result.passed?
699
+ assert_equal 1, result.assertions
700
+ end
701
+
665
702
  def test_name
666
703
  spec_a = describe ExampleA do; end
667
704
  spec_b = describe ExampleB, :random_method do; end
@@ -1,6 +1,5 @@
1
1
  require 'pathname'
2
2
  require 'minitest/metametameta'
3
- require 'minitest/test_helper'
4
3
 
5
4
  module MyModule; end
6
5
  class AnError < StandardError; include MyModule; end
@@ -196,7 +195,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
196
195
  end
197
196
 
198
197
  expected = clean <<-EOM
199
- .E
198
+ E.
200
199
 
201
200
  Finished in 0.00
202
201
 
@@ -252,7 +251,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
252
251
  end
253
252
 
254
253
  expected = clean <<-EOM
255
- .F
254
+ F.
256
255
 
257
256
  Finished in 0.00
258
257
 
@@ -369,6 +368,15 @@ class TestMinitestRunner < MetaMetaMetaTestCase
369
368
  assert_report expected
370
369
  end
371
370
 
371
+ def restore_env
372
+ old_value = ENV["MT_NO_SKIP_MSG"]
373
+ ENV.delete "MT_NO_SKIP_MSG"
374
+
375
+ yield
376
+ ensure
377
+ ENV["MT_NO_SKIP_MSG"] = old_value
378
+ end
379
+
372
380
  def test_run_skip
373
381
  @tu =
374
382
  Class.new Minitest::Test do
@@ -382,7 +390,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
382
390
  end
383
391
 
384
392
  expected = clean <<-EOM
385
- .S
393
+ S.
386
394
 
387
395
  Finished in 0.00
388
396
 
@@ -391,7 +399,9 @@ class TestMinitestRunner < MetaMetaMetaTestCase
391
399
  You have skipped tests. Run with --verbose for details.
392
400
  EOM
393
401
 
394
- assert_report expected
402
+ restore_env do
403
+ assert_report expected
404
+ end
395
405
  end
396
406
 
397
407
  def test_run_skip_verbose
@@ -407,8 +417,8 @@ class TestMinitestRunner < MetaMetaMetaTestCase
407
417
  end
408
418
 
409
419
  expected = clean <<-EOM
410
- #<Class:0xXXX>#test_something = 0.00 s = .
411
420
  #<Class:0xXXX>#test_skip = 0.00 s = S
421
+ #<Class:0xXXX>#test_something = 0.00 s = .
412
422
 
413
423
  Finished in 0.00
414
424
 
@@ -417,7 +427,7 @@ class TestMinitestRunner < MetaMetaMetaTestCase
417
427
  not yet
418
428
 
419
429
  2 runs, 1 assertions, 0 failures, 0 errors, 1 skips
420
- EOM
430
+ EOM
421
431
 
422
432
  assert_report expected, %w[--seed 42 --verbose]
423
433
  end
@@ -480,17 +490,12 @@ EOM
480
490
  end
481
491
  end
482
492
 
483
-
484
- def test_parallel_each_size
485
- assert_equal 0, Minitest::ParallelEach.new([]).size
486
- end
487
-
488
- =begin
489
493
  def test_run_parallel
490
494
  skip "I don't have ParallelEach debugged yet" if maglev?
491
495
 
492
496
  test_count = 2
493
497
  test_latch = Latch.new test_count
498
+ wait_latch = Latch.new test_count
494
499
  main_latch = Latch.new
495
500
 
496
501
  thread = Thread.new {
@@ -529,10 +534,21 @@ EOM
529
534
  2 runs, 2 assertions, 0 failures, 0 errors, 0 skips
530
535
  EOM
531
536
 
532
- assert_report expected
537
+ assert_report(expected) do |reporter|
538
+ reporter.extend(Module.new {
539
+ define_method("record") do |result|
540
+ super(result)
541
+ wait_latch.release
542
+ end
543
+
544
+ define_method("report") do
545
+ wait_latch.await
546
+ super()
547
+ end
548
+ })
549
+ end
533
550
  assert thread.join
534
551
  end
535
- =end
536
552
  end
537
553
 
538
554
  class TestMinitestUnitOrder < MetaMetaMetaTestCase
@@ -707,8 +723,8 @@ class TestMinitestUnitTestCase < Minitest::Test
707
723
  end
708
724
 
709
725
  def teardown
710
- # assert_equal(@assertion_count, @tc._assertions,
711
- # "expected #{@assertion_count} assertions to be fired during the test, not #{@tc._assertions}") if @tc.passed?
726
+ assert_equal(@assertion_count, @tc.assertions,
727
+ "expected #{@assertion_count} assertions to be fired during the test, not #{@tc.assertions}") if @tc.passed?
712
728
  end
713
729
 
714
730
  def non_verbose
@@ -896,6 +912,8 @@ class TestMinitestUnitTestCase < Minitest::Test
896
912
  end
897
913
 
898
914
  def test_delta_consistency
915
+ @assertion_count = 2
916
+
899
917
  @tc.assert_in_delta 0, 1, 1
900
918
 
901
919
  util_assert_triggered "Expected |0 - 1| (1) to not be <= 1." do
@@ -928,6 +946,8 @@ class TestMinitestUnitTestCase < Minitest::Test
928
946
  end
929
947
 
930
948
  def test_epsilon_consistency
949
+ @assertion_count = 2
950
+
931
951
  @tc.assert_in_epsilon 1.0, 1.001
932
952
 
933
953
  msg = "Expected |1.0 - 1.001| (0.000999xxx) to not be <= 0.001."
@@ -1360,7 +1380,6 @@ class TestMinitestUnitTestCase < Minitest::Test
1360
1380
 
1361
1381
  def test_capture_subprocess_io
1362
1382
  @assertion_count = 0
1363
- skip "Dunno why but the parallel run of this fails"
1364
1383
 
1365
1384
  non_verbose do
1366
1385
  out, err = capture_subprocess_io do
@@ -1639,7 +1658,6 @@ class TestMinitestUnitTestCase < Minitest::Test
1639
1658
  end
1640
1659
  end
1641
1660
 
1642
- =begin
1643
1661
  def test_runnable_methods_random
1644
1662
  @assertion_count = 0
1645
1663
 
@@ -1673,7 +1691,7 @@ class TestMinitestUnitTestCase < Minitest::Test
1673
1691
  expected = %w(test_test1 test_test2 test_test3)
1674
1692
  assert_equal expected, sample_test_case.runnable_methods
1675
1693
  end
1676
- =end
1694
+
1677
1695
  def test_i_suck_and_my_tests_are_order_dependent_bang_sets_test_order_alpha
1678
1696
  @assertion_count = 0
1679
1697
 
metadata CHANGED
@@ -1,55 +1,55 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spec
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.19
4
+ version: 5.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - code@bootstraponline.com
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-19 00:00:00.000000000 Z
11
+ date: 2014-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: chronic_duration
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
19
  version: 0.10.2
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.10.2
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hoe
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
33
  version: '3.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '3.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rdoc
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '4.0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '4.0'
55
55
  description: Modified minitest for Appium.
@@ -62,8 +62,8 @@ extra_rdoc_files:
62
62
  - Manifest.txt
63
63
  - README.txt
64
64
  files:
65
- - .autotest
66
- - .gitignore
65
+ - ".autotest"
66
+ - ".gitignore"
67
67
  - History.txt
68
68
  - Manifest.txt
69
69
  - README.txt
@@ -77,7 +77,7 @@ files:
77
77
  - lib/minitest/expectations.rb
78
78
  - lib/minitest/hell.rb
79
79
  - lib/minitest/mock.rb
80
- - lib/minitest/parallel_each.rb
80
+ - lib/minitest/parallel.rb
81
81
  - lib/minitest/pride.rb
82
82
  - lib/minitest/pride_plugin.rb
83
83
  - lib/minitest/spec.rb
@@ -85,30 +85,9 @@ files:
85
85
  - lib/minitest/unit.rb
86
86
  - lib/spec.rb
87
87
  - readme.md
88
- - release_notes.md
89
88
  - spec.gemspec
90
- - test/manual/after_run.rb
91
- - test/manual/appium.rb
92
- - test/manual/appium_after_last.rb
93
- - test/manual/appium_before_first.rb
94
- - test/manual/assert.rb
95
- - test/manual/before_first_0.rb
96
- - test/manual/before_first_1.rb
97
- - test/manual/ctrl_c.rb
98
- - test/manual/debug.rb
99
- - test/manual/do_end.rb
100
- - test/manual/raise.rb
101
- - test/manual/run2.rb
102
- - test/manual/run3.rb
103
- - test/manual/setup.rb
104
89
  - test/manual/simple.rb
105
- - test/manual/simple2.rb
106
- - test/manual/skip.rb
107
- - test/manual/t.rb
108
- - test/manual/trace.rb
109
- - test/manual/trace2.rb
110
90
  - test/minitest/metametameta.rb
111
- - test/minitest/test_helper.rb
112
91
  - test/minitest/test_minitest_benchmark.rb
113
92
  - test/minitest/test_minitest_mock.rb
114
93
  - test/minitest/test_minitest_reporter.rb
@@ -120,28 +99,27 @@ licenses:
120
99
  metadata: {}
121
100
  post_install_message:
122
101
  rdoc_options:
123
- - --main
102
+ - "--main"
124
103
  - README.txt
125
104
  require_paths:
126
105
  - lib
127
106
  required_ruby_version: !ruby/object:Gem::Requirement
128
107
  requirements:
129
- - - '>='
108
+ - - ">="
130
109
  - !ruby/object:Gem::Version
131
110
  version: 1.9.3
132
111
  required_rubygems_version: !ruby/object:Gem::Requirement
133
112
  requirements:
134
- - - '>='
113
+ - - ">="
135
114
  - !ruby/object:Gem::Version
136
115
  version: '0'
137
116
  requirements: []
138
117
  rubyforge_project:
139
- rubygems_version: 2.0.6
118
+ rubygems_version: 2.2.2
140
119
  signing_key:
141
120
  specification_version: 4
142
121
  summary: Modified minitest for Appium
143
122
  test_files:
144
- - test/minitest/test_helper.rb
145
123
  - test/minitest/test_minitest_benchmark.rb
146
124
  - test/minitest/test_minitest_mock.rb
147
125
  - test/minitest/test_minitest_reporter.rb