ruby-changes:15651
From: nobu <ko1@a...>
Date: Sat, 1 May 2010 00:26:50 +0900 (JST)
Subject: [ruby-changes:15651] Ruby:r27568 (trunk): * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert):
nobu 2010-05-01 00:26:34 +0900 (Sat, 01 May 2010) New Revision: 27568 http://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=rev&revision=27568 Log: * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert): assertion message must be String or Proc. suggested by caleb clausen at [ruby-core:29884]. Added directories: trunk/test/testunit/ Added files: trunk/test/testunit/test_assertion.rb Modified files: trunk/ChangeLog trunk/lib/test/unit/assertions.rb Index: ChangeLog =================================================================== --- ChangeLog (revision 27567) +++ ChangeLog (revision 27568) @@ -1,3 +1,9 @@ +Sat May 1 00:26:31 2010 Nobuyoshi Nakada <nobu@r...> + + * lib/test/unit/assertions.rb (Test::Unit::Assertions#assert): + assertion message must be String or Proc. suggested by caleb + clausen at [ruby-core:29884]. + Sat May 1 00:14:47 2010 Nobuyoshi Nakada <nobu@r...> * test/ruby/test_io.rb: skip false tests on Windows. Index: lib/test/unit/assertions.rb =================================================================== --- lib/test/unit/assertions.rb (revision 27567) +++ lib/test/unit/assertions.rb (revision 27568) @@ -10,6 +10,15 @@ obj.pretty_inspect.chomp end + def assert(test, msg = (nomsg = true; nil)) + unless nomsg or msg.instance_of?(String) or msg.instance_of?(Proc) or + (bt = caller).shift.rindex(MiniTest::MINI_DIR, 0) + bt = MiniTest.filter_backtrace(bt) + raise ArgumentError, "assertion message must be String or Proc, but #{msg.class} was given.", bt + end + super + end + def assert_raise(*args, &b) assert_raises(*args, &b) end Index: test/testunit/test_assertion.rb =================================================================== --- test/testunit/test_assertion.rb (revision 0) +++ test/testunit/test_assertion.rb (revision 27568) @@ -0,0 +1,8 @@ +require 'test/unit' +class TestAssertion < Test::Unit::TestCase + def test_wrong_assertion + error, line = assert_raise(ArgumentError) {assert(true, true)}, __LINE__ + assert_match(/assertion message must be String or Proc, but TrueClass was given/, error.message) + assert_match(/\A#{Regexp.quote(__FILE__)}:#{line}:/, error.backtrace[0]) + end +end Property changes on: test/testunit/test_assertion.rb ___________________________________________________________________ Name: svn:eol-style + LF -- ML: ruby-changes@q... Info: http://www.atdot.net/~ko1/quickml/