From noreply at rubyforge.org Sun Sep 27 00:56:15 2009 From: noreply at rubyforge.org (noreply at rubyforge.org) Date: Sun, 27 Sep 2009 00:56:15 -0400 (EDT) Subject: [test-unit-tracker] [ test-unit-Bugs-27195 ] test-unit-2.0.3 + ruby-1.9.1 cannot properly test DelegateClass subclasses Message-ID: <20090927045615.AF4881978291@rubyforge.org> Bugs item #27195, was opened at 2009-09-27 04:56 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=21856&aid=27195&group_id=5650 Category: None Group: None Status: Open Resolution: None Priority: 3 Submitted By: Mike Pomraning (pilcrow) Assigned to: Nobody (None) Summary: test-unit-2.0.3 + ruby-1.9.1 cannot properly test DelegateClass subclasses Initial Comment: Summary: internal reliance on pp causes some assertion failures with a DelegateClass object to fail with a spurious NameError, rather than because the given value did not satisfy the assertion. === example === require 'delegate' require 'test/unit' class ArrayLike < DelegateClass(Array); end class TestDelegateEquality < Test::Unit::TestCase def test_assert_equal reference = [1,2,3] not_quite = ArrayLike.new([1,2]) assert_equal reference, not_quite, "should fail b/c [1,2,3] != [1,2]" end end === end example === Running this example gives me a NameError rather what I expect to see, which is something like "<[1, 2, 3]> expected but was <[1, 2]>." $ GEM_PATH=~/.gem/ruby/1.9.1/ ruby-1.9 /tmp/test_delegate.rb Loaded suite /tmp/test_delegate Started E Finished in 0.016211644 seconds. 1) Error: test_assert_equal(TestDelegateEquality): NameError: undefined method `inspect' for class `ArrayLike' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `method' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `call' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `pretty_print' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:154:in `block in pp' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:200:in `block (2 levels) in group' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:227:in `nest' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:200:in `block in group' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:212:in `group_sub' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:199:in `group' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:154:in `pp' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:77:in `block in pp' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:121:in `guard_inspect_key' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:77:in `pp' /tmp/test_delegate.rb:11:in `test_assert_equal' 1 tests, 1 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications See also http://redmine.ruby-lang.org/issues/show/2147 ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=21856&aid=27195&group_id=5650 From noreply at rubyforge.org Sun Sep 27 01:57:48 2009 From: noreply at rubyforge.org (noreply at rubyforge.org) Date: Sun, 27 Sep 2009 01:57:48 -0400 (EDT) Subject: [test-unit-tracker] [ test-unit-Bugs-27195 ] test-unit-2.0.3 + ruby-1.9.1 cannot properly test DelegateClass subclasses Message-ID: <20090927055748.DEEAE197828C@rubyforge.org> Bugs item #27195, was opened at 2009-09-27 13:56 You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=21856&aid=27195&group_id=5650 Category: None Group: None >Status: Closed >Resolution: Accepted Priority: 3 Submitted By: Mike Pomraning (pilcrow) Assigned to: Nobody (None) Summary: test-unit-2.0.3 + ruby-1.9.1 cannot properly test DelegateClass subclasses Initial Comment: Summary: internal reliance on pp causes some assertion failures with a DelegateClass object to fail with a spurious NameError, rather than because the given value did not satisfy the assertion. === example === require 'delegate' require 'test/unit' class ArrayLike < DelegateClass(Array); end class TestDelegateEquality < Test::Unit::TestCase def test_assert_equal reference = [1,2,3] not_quite = ArrayLike.new([1,2]) assert_equal reference, not_quite, "should fail b/c [1,2,3] != [1,2]" end end === end example === Running this example gives me a NameError rather what I expect to see, which is something like "<[1, 2, 3]> expected but was <[1, 2]>." $ GEM_PATH=~/.gem/ruby/1.9.1/ ruby-1.9 /tmp/test_delegate.rb Loaded suite /tmp/test_delegate Started E Finished in 0.016211644 seconds. 1) Error: test_assert_equal(TestDelegateEquality): NameError: undefined method `inspect' for class `ArrayLike' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `method' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `call' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:286:in `pretty_print' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:154:in `block in pp' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:200:in `block (2 levels) in group' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:227:in `nest' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:200:in `block in group' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:212:in `group_sub' /opt/ruby-1.9.1/lib/ruby/1.9.1/prettyprint.rb:199:in `group' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:154:in `pp' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:77:in `block in pp' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:121:in `guard_inspect_key' /opt/ruby-1.9.1/lib/ruby/1.9.1/pp.rb:77:in `pp' /tmp/test_delegate.rb:11:in `test_assert_equal' 1 tests, 1 assertions, 0 failures, 1 errors, 0 pendings, 0 omissions, 0 notifications See also http://redmine.ruby-lang.org/issues/show/2147 ---------------------------------------------------------------------- >Comment By: Kouhei Sutou (kou) Date: 2009-09-27 14:57 Message: I've fixed it in trunk. NOTE: This is a bug of pp. ---------------------------------------------------------------------- You can respond by visiting: http://rubyforge.org/tracker/?func=detail&atid=21856&aid=27195&group_id=5650