traceback.py be closer to the built-in formatting.
A few unittests had to be fixed, too.
...
...
...
-DivisionByZero: x / 0
+decimal.DivisionByZero: x / 0
>>> c = Context()
>>> c.traps[InvalidOperation] = 0
>>> print c.flags[InvalidOperation]
...
...
...
-InvalidOperation: 0 / 0
+decimal.InvalidOperation: 0 / 0
>>> print c.flags[InvalidOperation]
1
>>> c.flags[InvalidOperation] = 0
- test: the DocTest object being run
- - excample: the Example object that failed
+ - example: the Example object that failed
- exc_info: the exception info
"""
>>> runner.run(test)
Traceback (most recent call last):
...
- UnexpectedException: <DocTest foo from foo.py:0 (2 examples)>
+ doctest.UnexpectedException: <DocTest foo from foo.py:0 (2 examples)>
>>> del test.globs['__builtins__']
>>> test.globs
>>> doctest.testfile('test_doctest.txt', raise_on_error=True)
... # doctest: +ELLIPSIS
Traceback (most recent call last):
- UnexpectedException: ...
+ doctest.UnexpectedException: ...
>>> doctest.master = None # Reset master.
If the tests contain non-ASCII characters, the tests might fail, since
err = traceback.format_exception_only(X, X())
self.assertEqual(len(err), 1)
str_value = '<unprintable %s object>' % X.__name__
- self.assertEqual(err[0], X.__name__ + ': ' + str_value + '\n')
+ self.assertEqual(err[0], "%s.%s: %s\n" % (X.__module__,
+ X.__name__,
+ str_value))
def test_main():
>>> a, b, c, d, e = BadSeq()
Traceback (most recent call last):
...
- BozoError
+ test.test_unpack.BozoError
Trigger code while expecting an IndexError (unpack sequence too short, wrong
error)
>>> a, b, c = BadSeq()
Traceback (most recent call last):
...
- BozoError
+ test.test_unpack.BozoError
"""
"""
stype = etype.__name__
+ smod = etype.__module__
+ if smod not in ("exceptions", "__main__", "__builtin__"):
+ stype = smod + '.' + stype
if not issubclass(etype, SyntaxError):
return [_format_final_exc_line(stype, value)]