minitest 2.7.0 → 2.8.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.
data.tar.gz.sig CHANGED
Binary file
@@ -1,3 +1,15 @@
1
+ === 2.8.0 / 2011-11-08
2
+
3
+ * 2 minor enhancements:
4
+
5
+ * Add a method so that code can be run around a particular test case (tenderlove)
6
+ * Turn off backtrace filtering if we're running inside a ruby checkout. (drbrain)
7
+
8
+ * 2 bug fixes:
9
+
10
+ * Fixed 2 typos and 2 doc glitches. (splattael)
11
+ * Remove unused block arguments to avoid creating Proc objects. (k-tsj)
12
+
1
13
  === 2.7.0 / 2011-10-25
2
14
 
3
15
  * 2 minor enhancements:
@@ -6,7 +6,7 @@ class Module # :nodoc:
6
6
  def infect_an_assertion meth, new_name, dont_flip = false # :nodoc:
7
7
  # warn "%-22p -> %p %p" % [meth, new_name, dont_flip]
8
8
  self.class_eval <<-EOM
9
- def #{new_name} *args, &block
9
+ def #{new_name} *args
10
10
  return MiniTest::Spec.current.#{meth}(*args, &self) if
11
11
  Proc === self
12
12
  return MiniTest::Spec.current.#{meth}(args.first, self) if
@@ -18,22 +18,6 @@ module MiniTest
18
18
 
19
19
  class Skip < Assertion; end
20
20
 
21
- file = if RUBY_VERSION >= '1.9.0' then # bt's expanded, but __FILE__ isn't :(
22
- File.expand_path __FILE__
23
- elsif __FILE__ =~ /^[^\.]/ then # assume both relative
24
- require 'pathname'
25
- pwd = Pathname.new Dir.pwd
26
- pn = Pathname.new File.expand_path(__FILE__)
27
- relpath = pn.relative_path_from(pwd) rescue pn
28
- pn = File.join ".", relpath unless pn.relative?
29
- pn.to_s
30
- else # assume both are expanded
31
- __FILE__
32
- end
33
-
34
- # './lib' in project dir, or '/usr/local/blahblah' if installed
35
- MINI_DIR = File.dirname(File.dirname(file)) # :nodoc:
36
-
37
21
  def self.filter_backtrace bt # :nodoc:
38
22
  return ["No backtrace"] unless bt
39
23
 
@@ -41,11 +25,11 @@ module MiniTest
41
25
 
42
26
  unless $DEBUG then
43
27
  bt.each do |line|
44
- break if line.rindex MINI_DIR, 0
28
+ break if line =~ /lib\/minitest/
45
29
  new_bt << line
46
30
  end
47
31
 
48
- new_bt = bt.reject { |line| line.rindex MINI_DIR, 0 } if new_bt.empty?
32
+ new_bt = bt.reject { |line| line =~ /lib\/minitest/ } if new_bt.empty?
49
33
  new_bt = bt.dup if new_bt.empty?
50
34
  else
51
35
  new_bt = bt.dup
@@ -645,7 +629,7 @@ module MiniTest
645
629
  end
646
630
 
647
631
  class Unit
648
- VERSION = "2.7.0" # :nodoc:
632
+ VERSION = "2.8.0" # :nodoc:
649
633
 
650
634
  attr_accessor :report, :failures, :errors, :skips # :nodoc:
651
635
  attr_accessor :test_count, :assertion_count # :nodoc:
@@ -971,7 +955,7 @@ module MiniTest
971
955
  @passed = nil
972
956
  self.setup
973
957
  self.run_setup_hooks
974
- self.__send__ self.__name__
958
+ self.run_test self.__name__
975
959
  result = "." unless io?
976
960
  @passed = true
977
961
  rescue *PASSTHROUGH_EXCEPTIONS
@@ -993,6 +977,8 @@ module MiniTest
993
977
  result
994
978
  end
995
979
 
980
+ alias :run_test :__send__
981
+
996
982
  def initialize name # :nodoc:
997
983
  @__name__ = name
998
984
  @__io__ = nil
@@ -1093,17 +1079,17 @@ module MiniTest
1093
1079
  # The argument can be any object that responds to #call or a block.
1094
1080
  # That means that this call,
1095
1081
  #
1096
- # MiniTest::TestCase.add_setup_hook { puts "foo" }
1082
+ # MiniTest::Unit::TestCase.add_setup_hook { puts "foo" }
1097
1083
  #
1098
1084
  # ... is equivalent to:
1099
1085
  #
1100
1086
  # module MyTestSetup
1101
- # def call
1087
+ # def self.call
1102
1088
  # puts "foo"
1103
1089
  # end
1104
1090
  # end
1105
1091
  #
1106
- # MiniTest::TestCase.add_setup_hook MyTestSetup
1092
+ # MiniTest::Unit::TestCase.add_setup_hook MyTestSetup
1107
1093
  #
1108
1094
  # The blocks passed to +add_setup_hook+ take an optional parameter that
1109
1095
  # will be the TestCase instance that is executing the block.
@@ -1142,17 +1128,17 @@ module MiniTest
1142
1128
  # The argument can be any object that responds to #call or a block.
1143
1129
  # That means that this call,
1144
1130
  #
1145
- # MiniTest::TestCase.add_teardown_hook { puts "foo" }
1131
+ # MiniTest::Unit::TestCase.add_teardown_hook { puts "foo" }
1146
1132
  #
1147
1133
  # ... is equivalent to:
1148
1134
  #
1149
1135
  # module MyTestTeardown
1150
- # def call
1136
+ # def self.call
1151
1137
  # puts "foo"
1152
1138
  # end
1153
1139
  # end
1154
1140
  #
1155
- # MiniTest::TestCase.add_teardown_hook MyTestTeardown
1141
+ # MiniTest::Unit::TestCase.add_teardown_hook MyTestTeardown
1156
1142
  #
1157
1143
  # The blocks passed to +add_teardown_hook+ take an optional parameter
1158
1144
  # that will be the TestCase instance that is executing the block.
@@ -143,13 +143,16 @@ class TestMiniTestMock < MiniTest::Unit::TestCase
143
143
 
144
144
  def test_verify_shows_the_actual_arguments_in_the_message
145
145
  mock = MiniTest::Mock.new
146
- mock.expect :capitalized, true, ["Foobar"]
147
- mock.capitalized "foobaz"
146
+ mock.expect :capitalized, true, ["a"]
147
+ mock.capitalized "b"
148
148
  e = assert_raises MockExpectationError do
149
149
  mock.verify
150
150
  end
151
151
 
152
- expected = "expected capitalized, {:retval=>true, :args=>[\"Foobar\"]}, got [{:retval=>true, :args=>[\"foobaz\"]}]"
152
+ a = {:retval=>true, :args=>["a"]}
153
+ b = {:retval=>true, :args=>["b"]}
154
+
155
+ expected = "expected capitalized, #{a.inspect}, got [#{b.inspect}]"
153
156
  assert_equal expected, e.message
154
157
  end
155
158
 
@@ -8,7 +8,7 @@ class ImmutableString < String; def inspect; super.freeze; end; end
8
8
 
9
9
  class TestMiniTestUnit < MiniTest::Unit::TestCase
10
10
  pwd = Pathname.new(File.expand_path(Dir.pwd))
11
- basedir = Pathname.new(File.expand_path(MiniTest::MINI_DIR)) + 'mini'
11
+ basedir = Pathname.new(File.expand_path("lib/minitest")) + 'mini'
12
12
  basedir = basedir.relative_path_from(pwd).to_s
13
13
  MINITEST_BASE_DIR = basedir[/\A\./] ? basedir : "./#{basedir}"
14
14
  BT_MIDDLE = ["#{MINITEST_BASE_DIR}/test.rb:161:in `each'",
@@ -182,6 +182,38 @@ Finished tests in 0.00
182
182
  assert_equal ex, fu
183
183
  end
184
184
 
185
+ def test_run_test
186
+ tc = Class.new(MiniTest::Unit::TestCase) do
187
+ attr_reader :foo
188
+
189
+ def run_test name
190
+ @foo = "hi mom!"
191
+ super
192
+ @foo = "okay"
193
+ end
194
+
195
+ def test_something
196
+ assert_equal "hi mom!", foo
197
+ end
198
+ end
199
+
200
+ Object.const_set(:ATestCase, tc)
201
+
202
+ @tu.run %w[--seed 42]
203
+
204
+ expected = "Run options: --seed 42
205
+
206
+ # Running tests:
207
+
208
+ .
209
+
210
+ Finished tests in 0.00
211
+
212
+ 1 tests, 1 assertions, 0 failures, 0 errors, 0 skips
213
+ "
214
+ assert_report expected
215
+ end
216
+
185
217
  def test_run_error
186
218
  tc = Class.new(MiniTest::Unit::TestCase) do
187
219
  def test_something
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minitest
3
3
  version: !ruby/object:Gem::Version
4
- hash: 19
4
+ hash: 47
5
5
  prerelease:
6
6
  segments:
7
7
  - 2
8
- - 7
8
+ - 8
9
9
  - 0
10
- version: 2.7.0
10
+ version: 2.8.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Ryan Davis
@@ -36,12 +36,27 @@ cert_chain:
36
36
  FBHgymkyj/AOSqKRIpXPhjC6
37
37
  -----END CERTIFICATE-----
38
38
 
39
- date: 2011-10-26 00:00:00 Z
39
+ date: 2011-11-09 00:00:00 Z
40
40
  dependencies:
41
41
  - !ruby/object:Gem::Dependency
42
- name: hoe
42
+ name: rdoc
43
43
  prerelease: false
44
44
  requirement: &id001 !ruby/object:Gem::Requirement
45
+ none: false
46
+ requirements:
47
+ - - ~>
48
+ - !ruby/object:Gem::Version
49
+ hash: 21
50
+ segments:
51
+ - 3
52
+ - 9
53
+ version: "3.9"
54
+ type: :development
55
+ version_requirements: *id001
56
+ - !ruby/object:Gem::Dependency
57
+ name: hoe
58
+ prerelease: false
59
+ requirement: &id002 !ruby/object:Gem::Requirement
45
60
  none: false
46
61
  requirements:
47
62
  - - ~>
@@ -52,7 +67,7 @@ dependencies:
52
67
  - 12
53
68
  version: "2.12"
54
69
  type: :development
55
- version_requirements: *id001
70
+ version_requirements: *id002
56
71
  description: "minitest provides a complete suite of testing facilities supporting\n\
57
72
  TDD, BDD, mocking, and benchmarking.\n\n \"I had a class with Jim Weirich on testing last week and we were\n allowed to choose our testing frameworks. Kirk Haines and I were\n paired up and we cracked open the code for a few test\n frameworks...\n\n I MUST say that mintiest is *very* readable / understandable\n compared to the 'other two' options we looked at. Nicely done and\n thank you for helping us keep our mental sanity.\"\n\n -- Wayne E. Seguin\n\n\
58
73
  minitest/unit is a small and incredibly fast unit testing framework.\n\
metadata.gz.sig CHANGED
Binary file