diff options
author | Georg Brandl <georg@python.org> | 2009-04-05 14:24:52 +0000 |
---|---|---|
committer | Georg Brandl <georg@python.org> | 2009-04-05 14:24:52 +0000 |
commit | dc4a77159b26069ee8a3f67977899f57fd160c3d (patch) | |
tree | ba4f159e01766cea9a36909e3d7027ab5f500f3b /Lib/test/test_traceback.py | |
parent | 517cfdcfd9261bdaf34d054e3d2416abb9f9f930 (diff) | |
download | cpython-git-dc4a77159b26069ee8a3f67977899f57fd160c3d.tar.gz |
#1326077: fix traceback formatting of SyntaxErrors. This fixes two differences with formatting coming from Python: a) the reproduction of location details in the error message if no line text is given, b) the prefixing of the last line by one space.
Diffstat (limited to 'Lib/test/test_traceback.py')
-rw-r--r-- | Lib/test/test_traceback.py | 29 |
1 files changed, 17 insertions, 12 deletions
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py index 0708f8163e..5cd08eeff3 100644 --- a/Lib/test/test_traceback.py +++ b/Lib/test/test_traceback.py @@ -8,16 +8,6 @@ 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 @@ -162,9 +152,24 @@ def test(): class TracebackFormatTests(unittest.TestCase): - def test_traceback_indentation(self): + 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) + # Make sure that the traceback is properly indented. - tb_lines = example_traceback.splitlines() + tb_lines = python_fmt.splitlines() self.assertEquals(len(tb_lines), 3) banner, location, source_line = tb_lines self.assert_(banner.startswith('Traceback')) |