summaryrefslogtreecommitdiff
path: root/lib/test
diff options
context:
space:
mode:
authorntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-05 00:59:02 +0000
committerntalbott <ntalbott@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2003-10-05 00:59:02 +0000
commitcc32628660d5210815200bf7a6952e649a7958c8 (patch)
treeb3c7cbdee651561c4f9439798ea932b1ac0d9622 /lib/test
parent82f064a5244dd2ac0b5ded26ff186d85f1938220 (diff)
* lib/test/unit/assertions.rb: will use pp for output if available.
Can be disabled by setting Assertions.use_pp = false. * test/testunit/test_assertions.rb: made a small change to exception formatting. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib/test')
-rw-r--r--lib/test/unit/assertions.rb33
1 files changed, 28 insertions, 5 deletions
diff --git a/lib/test/unit/assertions.rb b/lib/test/unit/assertions.rb
index 23e5789270..fdb9632e09 100644
--- a/lib/test/unit/assertions.rb
+++ b/lib/test/unit/assertions.rb
@@ -336,15 +336,28 @@ EOT
private
def add_assertion
end
+
+ # Select whether or not to use the prettyprinter. If this
+ # option is set to false before any assertions are made, the
+ # prettyprinter will not be required at all.
+ public
+ def self.use_pp=(value)
+ AssertionMessage.use_pp = value
+ end
class AssertionMessage # :nodoc: all
+ @use_pp = true
+ class << self
+ attr_accessor :use_pp
+ end
+
class Literal
def initialize(value)
@value = value
end
def inspect
- @value
+ @value.to_s
end
end
@@ -383,15 +396,25 @@ EOT
def convert(object)
case object
when Exception
- return <<EOM.chop
-Class: <#{object.class}>
-Message: <#{object.message}>
+ <<EOM.chop
+Class: <#{convert(object.class)}>
+Message: <#{convert(object.message)}>
---Backtrace---
#{filter_backtrace(object.backtrace).join("\n")}
---------------
EOM
else
- return object.inspect
+ if(self.class.use_pp)
+ begin
+ require 'pp'
+ rescue LoadError
+ self.class.use_pp = false
+ return object.inspect
+ end unless(defined?(PP))
+ PP.pp(object, '').chomp
+ else
+ object.inspect
+ end
end
end