summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_traceback.py
diff options
context:
space:
mode:
authorJeremy Hylton <jeremy@alum.mit.edu>2001-03-21 20:33:04 (GMT)
committerJeremy Hylton <jeremy@alum.mit.edu>2001-03-21 20:33:04 (GMT)
commit09ccc3a22a95e6b399f82297e95fed809af257ec (patch)
treeb01f28e2b003de6bff2f13e9beca8bcb38df184a /Lib/test/test_traceback.py
parented9d0ba48242e8a0b1b6942c489da28e7025cd4b (diff)
downloadcpython-09ccc3a22a95e6b399f82297e95fed809af257ec.zip
cpython-09ccc3a22a95e6b399f82297e95fed809af257ec.tar.gz
cpython-09ccc3a22a95e6b399f82297e95fed809af257ec.tar.bz2
Test that traceback module works with SyntaxErrors with or without carets.
Diffstat (limited to 'Lib/test/test_traceback.py')
-rw-r--r--Lib/test/test_traceback.py40
1 files changed, 40 insertions, 0 deletions
diff --git a/Lib/test/test_traceback.py b/Lib/test/test_traceback.py
new file mode 100644
index 0000000..3858aac
--- /dev/null
+++ b/Lib/test/test_traceback.py
@@ -0,0 +1,40 @@
+"""Test cases for traceback module"""
+
+import unittest
+from test_support import run_unittest
+
+import traceback
+
+class TracebackCases(unittest.TestCase):
+ # For now, a very minimal set of tests. I want to be sure that
+ # formatting of SyntaxErrors works based on changes for 2.1.
+
+ def get_exception_format(self, func, exc):
+ try:
+ func()
+ except exc, value:
+ return traceback.format_exception_only(exc, value)
+ else:
+ raise ValueError, "call did not raise exception"
+
+ def syntax_error_with_caret(self):
+ compile("def fact(x):\n\treturn x!\n", "?", "exec")
+
+ def syntax_error_without_caret(self):
+ # XXX why doesn't compile raise the same traceback?
+ import nocaret
+
+ def test_caret(self):
+ err = self.get_exception_format(self.syntax_error_with_caret,
+ SyntaxError)
+ self.assert_(len(err) == 4)
+ self.assert_("^" in err[2]) # third line has caret
+ self.assert_(err[1].strip() == "return x!")
+
+ def test_nocaret(self):
+ err = self.get_exception_format(self.syntax_error_without_caret,
+ SyntaxError)
+ self.assert_(len(err) == 3)
+ self.assert_(err[1].strip() == "[x for x in x] = x")
+
+run_unittest(TracebackCases)