[svn r57554] fix case where argument to AssertionError has broken __repr__
--HG-- branch : trunk
This commit is contained in:
parent
162160acaf
commit
a0cbc060b6
|
@ -8,7 +8,14 @@ class AssertionError(BuiltinAssertionError):
|
||||||
def __init__(self, *args):
|
def __init__(self, *args):
|
||||||
BuiltinAssertionError.__init__(self, *args)
|
BuiltinAssertionError.__init__(self, *args)
|
||||||
if args:
|
if args:
|
||||||
self.msg = str(args[0])
|
try:
|
||||||
|
self.msg = str(args[0])
|
||||||
|
except (KeyboardInterrupt, SystemExit):
|
||||||
|
raise
|
||||||
|
except:
|
||||||
|
self.msg = "<[broken __repr__] %s at %0xd>" %(
|
||||||
|
args[0].__class__, id(args[0]))
|
||||||
|
|
||||||
else:
|
else:
|
||||||
f = sys._getframe(1)
|
f = sys._getframe(1)
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -96,3 +96,11 @@ def test_assert_implicit_multiline():
|
||||||
except AssertionError, e:
|
except AssertionError, e:
|
||||||
assert e.msg.find('assert [1, 2, 3] !=') != -1
|
assert e.msg.find('assert [1, 2, 3] !=') != -1
|
||||||
|
|
||||||
|
|
||||||
|
def test_assert_with_brokenrepr_arg():
|
||||||
|
class BrokenRepr:
|
||||||
|
def __repr__(self): 0 / 0
|
||||||
|
e = AssertionError(BrokenRepr())
|
||||||
|
if e.msg.find("broken __repr__") == -1:
|
||||||
|
py.test.fail("broken __repr__ not handle correctly")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue