diff options
author | Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp> | 2009-04-07 14:33:53 (GMT) |
---|---|---|
committer | Hirokazu Yamamoto <ocean-city@m2.ccsnet.ne.jp> | 2009-04-07 14:33:53 (GMT) |
commit | 32b18cc2cfd0a54611192e500757952bd9fcf0d4 (patch) | |
tree | d651346fea180d1dd8bbc58e9c389abc5458236d | |
parent | cfbb18f149d549a06c3cac5e48eb66e1457615a6 (diff) | |
download | cpython-32b18cc2cfd0a54611192e500757952bd9fcf0d4.zip cpython-32b18cc2cfd0a54611192e500757952bd9fcf0d4.tar.gz cpython-32b18cc2cfd0a54611192e500757952bd9fcf0d4.tar.bz2 |
Rolled back revisions 71237 via svnmerge from
svn+ssh://pythondev@svn.python.org/python/trunk
-rw-r--r-- | Lib/test/test_traceback.py | 29 | ||||
-rw-r--r-- | Lib/traceback.py | 9 |
2 files changed, 17 insertions, 21 deletions
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 5cd08ee..0708f81 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -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')) diff --git a/Lib/traceback.py b/Lib/traceback.py index ea3d51a..3d877ee 100644 --- a/Lib/traceback.py +++ b/Lib/traceback.py @@ -64,7 +64,7 @@ def print_tb(tb, limit=None, file=None): filename = co.co_filename name = co.co_name _print(file, - ' File "%s", line %d, in %s' % (filename, lineno, name)) + ' File "%s", line %d, in %s' % (filename,lineno,name)) linecache.checkcache(filename) line = linecache.getline(filename, lineno, f.f_globals) if line: _print(file, ' ' + line.strip()) @@ -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: - _print(file, line, '') + 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. @@ -194,7 +195,7 @@ def format_exception_only(etype, value): caretspace = ((c.isspace() and c or ' ') for c in caretspace) # only three spaces to account for offset1 == pos 0 lines.append(' %s^\n' % ''.join(caretspace)) - value = msg + value = msg lines.append(_format_final_exc_line(stype, value)) return lines |