Rolled back revisions 71237 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk
This commit is contained in:
Hirokazu Yamamoto 2009-04-07 14:33:53 +00:00
parent cfbb18f149
commit 32b18cc2cf
2 changed files with 17 additions and 21 deletions

View File

@ -8,6 +8,16 @@ from test.test_support import run_unittest, is_jython, Error
import traceback
try:
raise KeyError
except KeyError:
type_, value, tb = sys.exc_info()
file_ = StringIO()
traceback_print(tb, file_)
example_traceback = file_.getvalue()
else:
raise Error("unable to create test traceback string")
class TracebackCases(unittest.TestCase):
# For now, a very minimal set of tests. I want to be sure that
@ -152,24 +162,9 @@ def test():
class TracebackFormatTests(unittest.TestCase):
def test_traceback_format(self):
try:
raise KeyError('blah')
except KeyError:
type_, value, tb = sys.exc_info()
traceback_fmt = 'Traceback (most recent call last):\n' + \
''.join(traceback.format_tb(tb))
file_ = StringIO()
traceback_print(tb, file_)
python_fmt = file_.getvalue()
else:
raise Error("unable to create test traceback string")
# Make sure that Python and the traceback module format the same thing
self.assertEquals(traceback_fmt, python_fmt)
def test_traceback_indentation(self):
# Make sure that the traceback is properly indented.
tb_lines = python_fmt.splitlines()
tb_lines = example_traceback.splitlines()
self.assertEquals(len(tb_lines), 3)
banner, location, source_line = tb_lines
self.assert_(banner.startswith('Traceback'))

View File

@ -124,8 +124,9 @@ def print_exception(etype, value, tb, limit=None, file=None):
_print(file, 'Traceback (most recent call last):')
print_tb(tb, limit, file)
lines = format_exception_only(etype, value)
for line in lines:
for line in lines[:-1]:
_print(file, line, ' ')
_print(file, lines[-1], '')
def format_exception(etype, value, tb, limit = None):
"""Format a stack trace and the exception information.