[前][次][番号順一覧][スレッド一覧]

ruby-changes:9564

From: ryan <ko1@a...>
Date: Sun, 28 Dec 2008 05:51:51 +0900 (JST)
Subject: [ruby-changes:9564] Ruby:r21104 (trunk): Imported minitest 1.3.1 r4505.

ryan	2008-12-28 05:51:23 +0900 (Sun, 28 Dec 2008)

  New Revision: 21104

  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=21104

  Log:
    Imported minitest 1.3.1 r4505.

  Modified files:
    trunk/ChangeLog
    trunk/lib/minitest/spec.rb
    trunk/lib/minitest/unit.rb
    trunk/test/minitest/test_mini_spec.rb
    trunk/test/minitest/test_mini_test.rb

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 21103)
+++ ChangeLog	(revision 21104)
@@ -1,3 +1,8 @@
+Sun Dec 28 05:44:44 2008  Ryan Davis  <ryan@w...>
+
+	* lib/minitest/*.rb: Imported minitest 1.3.1 r4505.
+	* test/minitest/*.rb: ditto.
+
 Sun Dec 28 00:43:33 2008  Tanaka Akira  <akr@f...>
 
 	* runruby.rb: refactored to modify ENV as once.
@@ -1081,7 +1086,7 @@
 
 Sat Dec 13 09:17:33 2008  Ryan Davis  <ryand-ruby@z...>
 
-	* lib/minitest/*.rb: Imported minitest 1.3.2 r4503.
+	* lib/minitest/*.rb: Imported minitest 1.3.1 r4503.
 	* test/minitest/test_mini_test.rb: ditto.
 	* lib/miniunit/autorun.rb: added (as part of r4503).
 	
Index: lib/minitest/unit.rb
===================================================================
--- lib/minitest/unit.rb	(revision 21103)
+++ lib/minitest/unit.rb	(revision 21104)
@@ -116,9 +116,9 @@
     end
 
     def assert_match exp, act, msg = nil
-      msg = message(msg) { "Expected #{mu_pp(act)} to match #{mu_pp(exp)}" }
+      msg = message(msg) { "Expected #{mu_pp(exp)} to match #{mu_pp(act)}" }
       assert_respond_to act, :"=~"
-      (exp = /#{Regexp.escape(exp)}/) if String === exp && String === act
+      exp = /#{Regexp.escape(exp)}/ if String === exp && String === act
       assert act =~ exp, msg
     end
 
@@ -269,7 +269,7 @@
       msg = message(msg) { "Expected #{mu_pp(obj)} to not be an instance of #{cls}" }
       flip = (Module === obj) && ! (Module === cls) # HACK for specs
       obj, cls = cls, obj if flip
-      refute cls === obj, msg
+      refute obj.instance_of?(cls), msg
     end
 
     def refute_kind_of cls, obj, msg = nil # TODO: merge with instance_of
@@ -280,7 +280,9 @@
     end
 
     def refute_match exp, act, msg = nil
-      msg = message(msg) { "Expected #{mu_pp(act)} to not match #{mu_pp(exp)}" }
+      msg = message(msg) { "Expected #{mu_pp(exp)} to not match #{mu_pp(act)}" }
+      assert_respond_to act, :"=~"
+      exp = /#{Regexp.escape(exp)}/ if String === exp && String === act
       refute act =~ exp, msg
     end
 
@@ -313,7 +315,7 @@
   end
 
   class Unit
-    VERSION = "1.3.2"
+    VERSION = "1.3.1"
 
     attr_accessor :report, :failures, :errors, :skips
     attr_accessor :test_count, :assertion_count
@@ -323,7 +325,6 @@
 
     def self.autorun
       at_exit {
-p $!
         return if $! # don't run if there was an exception
         exit_code = MiniTest::Unit.new.run(ARGV)
         exit false if exit_code && exit_code != 0
@@ -336,9 +337,12 @@
     end
 
     def location e
-      e.backtrace.find { |s|
-        s !~ /in .(assert|refute|flunk|pass|fail|raise)/
-      }.sub(/:in .*$/, '')
+      last_before_assertion = ""
+      e.backtrace.reverse_each do |s|
+        break if s =~ /in .(assert|refute|flunk|pass|fail|raise)/
+        last_before_assertion = s
+      end
+      last_before_assertion.sub(/:in .*$/, '')
     end
 
     def puke klass, meth, e
Index: lib/minitest/spec.rb
===================================================================
--- lib/minitest/spec.rb	(revision 21103)
+++ lib/minitest/spec.rb	(revision 21104)
@@ -60,6 +60,7 @@
 
     cls.class_eval(&block)
   end
+  private :describe
 end
 
 class MiniTest::Spec < MiniTest::Unit::TestCase
Index: test/minitest/test_mini_spec.rb
===================================================================
--- test/minitest/test_mini_spec.rb	(revision 21103)
+++ test/minitest/test_mini_spec.rb	(revision 21104)
@@ -140,6 +140,7 @@
   end
 
   it "needs to verify mismatch" do
+    @assertion_count = 6
     "blah".wont_match(/\d+/).must_equal false
     proc { "blah".wont_match(/\w+/) }.must_raise MiniTest::Assertion
   end
Index: test/minitest/test_mini_test.rb
===================================================================
--- test/minitest/test_mini_test.rb	(revision 21103)
+++ test/minitest/test_mini_test.rb	(revision 21104)
@@ -28,7 +28,7 @@
     Object.send :remove_const, :ATestCase if defined? ATestCase
   end
 
-  pwd = Pathname.new(File.expand_path Dir.pwd)
+  pwd = Pathname.new(File.expand_path(Dir.pwd))
   basedir = Pathname.new(File.expand_path(MiniTest::MINI_DIR)) + 'mini'
   basedir = basedir.relative_path_from(pwd).to_s
   MINITEST_BASE_DIR = basedir[/\A\./] ? basedir : "./#{basedir}"
@@ -96,6 +96,7 @@
     assert_equal 'F', @tu.puke('SomeClass', 'method_name', exception)
     assert_equal 1, @tu.failures
     assert_match(/^Failure.*Oh no!/m, @tu.report.first)
+    assert_match("method_name(SomeClass) [unhappy]", @tu.report.first)
   end
 
   def test_class_puke_with_failure_and_flunk_in_backtrace
@@ -108,6 +109,72 @@
     refute @tu.report.any?{|line| line =~ /in .flunk/}
   end
 
+  def test_class_puke_with_assertion_failed_and_long_backtrace
+    bt = (["test/test_some_class.rb:615:in `method_name'",
+           "#{MINITEST_BASE_DIR}/unit.rb:140:in `assert_raises'",
+           "test/test_some_class.rb:615:in `each'",
+           "test/test_some_class.rb:614:in `test_method_name'",
+           "#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
+          BT_MIDDLE +
+          ["#{MINITEST_BASE_DIR}/test.rb:29"])
+    bt = util_expand_bt bt
+
+    ex_location = util_expand_bt(["test/test_some_class.rb:615"]).first
+
+    exception = MiniTest::Assertion.new "Oh no!"
+    exception.set_backtrace bt
+    assert_equal 'F', @tu.puke('TestSomeClass', 'test_method_name', exception)
+    assert_equal 1, @tu.failures
+    assert_match(/^Failure.*Oh no!/m, @tu.report.first)
+    assert_match("test_method_name(TestSomeClass) [#{ex_location}]", @tu.report.first)
+  end
+
+  def test_class_puke_with_assertion_failed_and_user_defined_assertions
+    bt = (["lib/test/my/util.rb:16:in `another_method_name'",
+           "#{MINITEST_BASE_DIR}/unit.rb:140:in `assert_raises'",
+           "lib/test/my/util.rb:15:in `block in assert_something'",
+           "lib/test/my/util.rb:14:in `each'",
+           "lib/test/my/util.rb:14:in `assert_something'",
+           "test/test_some_class.rb:615:in `each'",
+           "test/test_some_class.rb:614:in `test_method_name'",
+           "#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
+          BT_MIDDLE +
+          ["#{MINITEST_BASE_DIR}/test.rb:29"])
+    bt = util_expand_bt bt
+
+    ex_location = util_expand_bt(["test/test_some_class.rb:615"]).first
+
+    exception = MiniTest::Assertion.new "Oh no!"
+    exception.set_backtrace bt
+    assert_equal 'F', @tu.puke('TestSomeClass', 'test_method_name', exception)
+    assert_equal 1, @tu.failures
+    assert_match(/^Failure.*Oh no!/m, @tu.report.first)
+    assert_match("test_method_name(TestSomeClass) [#{ex_location}]", @tu.report.first)
+  end
+
+  def test_class_puke_with_flunk_and_user_defined_assertions
+    bt = (["lib/test/my/util.rb:16:in `flunk'",
+           "#{MINITEST_BASE_DIR}/unit.rb:140:in `assert_raises'",
+           "lib/test/my/util.rb:15:in `block in assert_something'",
+           "lib/test/my/util.rb:14:in `each'",
+           "lib/test/my/util.rb:14:in `assert_something'",
+           "test/test_some_class.rb:615:in `each'",
+           "test/test_some_class.rb:614:in `test_method_name'",
+           "#{MINITEST_BASE_DIR}/test.rb:165:in `__send__'"] +
+          BT_MIDDLE +
+          ["#{MINITEST_BASE_DIR}/test.rb:29"])
+    bt = util_expand_bt bt
+
+    ex_location = util_expand_bt(["test/test_some_class.rb:615"]).first
+
+    exception = MiniTest::Assertion.new "Oh no!"
+    exception.set_backtrace bt
+    assert_equal 'F', @tu.puke('TestSomeClass', 'test_method_name', exception)
+    assert_equal 1, @tu.failures
+    assert_match(/^Failure.*Oh no!/m, @tu.report.first)
+    assert_match("test_method_name(TestSomeClass) [#{ex_location}]", @tu.report.first)
+  end
+
   def test_class_puke_with_non_failure_exception
     exception = Exception.new("Oh no again!")
     assert_equal 'E', @tu.puke('SomeClass', 'method_name', exception)
@@ -465,13 +532,13 @@
 
   def test_assert_match
     @assertion_count = 2
-    @tc.assert_match "blah blah blah", /\w+/
+    @tc.assert_match(/\w+/, "blah blah blah")
   end
 
   def test_assert_match_triggered
     @assertion_count = 2
     util_assert_triggered 'Expected /\d+/ to match "blah blah blah".' do
-      @tc.assert_match "blah blah blah", /\d+/
+      @tc.assert_match(/\d+/, "blah blah blah")
     end
   end
 
@@ -795,12 +862,14 @@
   end
 
   def test_refute_match
-    @tc.refute_match "blah blah blah", /\d+/
+    @assertion_count = 2
+    @tc.refute_match(/\d+/, "blah blah blah")
   end
 
   def test_refute_match_triggered
+    @assertion_count = 2
     util_assert_triggered 'Expected /\w+/ to not match "blah blah blah".' do
-      @tc.refute_match "blah blah blah", /\w+/
+      @tc.refute_match(/\w+/, "blah blah blah")
     end
   end
 

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]