1 """Test cases for traceback module"""
4 from test_support
import run_unittest
8 class TracebackCases(unittest
.TestCase
):
9 # For now, a very minimal set of tests. I want to be sure that
10 # formatting of SyntaxErrors works based on changes for 2.1.
12 def get_exception_format(self
, func
, exc
):
16 return traceback
.format_exception_only(exc
, value
)
18 raise ValueError, "call did not raise exception"
20 def syntax_error_with_caret(self
):
21 compile("def fact(x):\n\treturn x!\n", "?", "exec")
23 def syntax_error_without_caret(self
):
24 # XXX why doesn't compile raise the same traceback?
25 import badsyntax_nocaret
28 err
= self
.get_exception_format(self
.syntax_error_with_caret
,
30 self
.assert_(len(err
) == 4)
31 self
.assert_("^" in err
[2]) # third line has caret
32 self
.assert_(err
[1].strip() == "return x!")
34 def test_nocaret(self
):
35 err
= self
.get_exception_format(self
.syntax_error_without_caret
,
37 self
.assert_(len(err
) == 3)
38 self
.assert_(err
[1].strip() == "[x for x in x] = x")
40 run_unittest(TracebackCases
)