Changeset 391 for python/trunk/Lib/test/test_traceback.py
- Timestamp:
- Mar 19, 2014, 11:31:01 PM (11 years ago)
- Location:
- python/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
python/trunk
-
Property svn:mergeinfo
set to
/python/vendor/Python-2.7.6 merged eligible /python/vendor/current merged eligible
-
Property svn:mergeinfo
set to
-
python/trunk/Lib/test/test_traceback.py
r2 r391 5 5 import sys 6 6 import unittest 7 from imp import reload 7 8 from test.test_support import run_unittest, is_jython, Error 8 9 9 10 import traceback 10 11 try:12 raise KeyError13 except KeyError:14 type_, value, tb = sys.exc_info()15 file_ = StringIO()16 traceback_print(tb, file_)17 example_traceback = file_.getvalue()18 else:19 raise Error("unable to create test traceback string")20 11 21 12 … … 48 39 err = self.get_exception_format(self.syntax_error_with_caret, 49 40 SyntaxError) 50 self.assert _(len(err) == 4)51 self.assert _(err[1].strip() == "return x!")52 self.assert _("^" inerr[2]) # third line has caret53 self.assert _(err[1].find("!") == err[2].find("^")) # in the right place41 self.assertTrue(len(err) == 4) 42 self.assertTrue(err[1].strip() == "return x!") 43 self.assertIn("^", err[2]) # third line has caret 44 self.assertTrue(err[1].find("!") == err[2].find("^")) # in the right place 54 45 55 46 err = self.get_exception_format(self.syntax_error_with_caret_2, 56 47 SyntaxError) 57 self.assert _("^" inerr[2]) # third line has caret58 self.assert _(err[2].count('\n') == 1) # and no additional newline59 self.assert _(err[1].find("+") == err[2].find("^")) # in the right place48 self.assertIn("^", err[2]) # third line has caret 49 self.assertTrue(err[2].count('\n') == 1) # and no additional newline 50 self.assertTrue(err[1].find("+") == err[2].find("^")) # in the right place 60 51 61 52 def test_nocaret(self): … … 65 56 err = self.get_exception_format(self.syntax_error_without_caret, 66 57 SyntaxError) 67 self.assert _(len(err) == 3)68 self.assert _(err[1].strip() == "[x for x in x] = x")58 self.assertTrue(len(err) == 3) 59 self.assertTrue(err[1].strip() == "[x for x in x] = x") 69 60 70 61 def test_bad_indentation(self): 71 62 err = self.get_exception_format(self.syntax_error_bad_indentation, 72 63 IndentationError) 73 self.assert _(len(err) == 4)74 self.assert _(err[1].strip() == "print 2")75 self.assert _("^" inerr[2])76 self.assert _(err[1].find("2") == err[2].find("^"))64 self.assertTrue(len(err) == 4) 65 self.assertTrue(err[1].strip() == "print 2") 66 self.assertIn("^", err[2]) 67 self.assertTrue(err[1].find("2") == err[2].find("^")) 77 68 78 69 def test_bug737473(self): 79 import sys,os, tempfile, time70 import os, tempfile, time 80 71 81 72 savedpath = sys.path[:] … … 114 105 except NotImplementedError: 115 106 src = traceback.extract_tb(sys.exc_traceback)[-1][-1] 116 self. failUnlessEqual(src, 'raise NotImplementedError')107 self.assertEqual(src, 'raise NotImplementedError') 117 108 finally: 118 109 sys.path[:] = savedpath … … 159 150 class X(Exception): 160 151 def __str__(self): 161 1 /0152 1 // 0 162 153 err = traceback.format_exception_only(X, X()) 163 154 self.assertEqual(len(err), 1) … … 169 160 self.assertEqual(err, ['None\n']) 170 161 162 def test_unicode(self): 163 err = AssertionError('\xff') 164 lines = traceback.format_exception_only(type(err), err) 165 self.assertEqual(lines, ['AssertionError: \xff\n']) 166 167 err = AssertionError(u'\xe9') 168 lines = traceback.format_exception_only(type(err), err) 169 self.assertEqual(lines, ['AssertionError: \\xe9\n']) 170 171 171 172 172 class TracebackFormatTests(unittest.TestCase): 173 173 174 def test_traceback_indentation(self): 174 def test_traceback_format(self): 175 try: 176 raise KeyError('blah') 177 except KeyError: 178 type_, value, tb = sys.exc_info() 179 traceback_fmt = 'Traceback (most recent call last):\n' + \ 180 ''.join(traceback.format_tb(tb)) 181 file_ = StringIO() 182 traceback_print(tb, file_) 183 python_fmt = file_.getvalue() 184 else: 185 raise Error("unable to create test traceback string") 186 187 # Make sure that Python and the traceback module format the same thing 188 self.assertEqual(traceback_fmt, python_fmt) 189 175 190 # Make sure that the traceback is properly indented. 176 tb_lines = example_traceback.splitlines()177 self.assertEqual s(len(tb_lines), 3)191 tb_lines = python_fmt.splitlines() 192 self.assertEqual(len(tb_lines), 3) 178 193 banner, location, source_line = tb_lines 179 self.assert _(banner.startswith('Traceback'))180 self.assert _(location.startswith(' File'))181 self.assert _(source_line.startswith(' raise'))194 self.assertTrue(banner.startswith('Traceback')) 195 self.assertTrue(location.startswith(' File')) 196 self.assertTrue(source_line.startswith(' raise')) 182 197 183 198
Note:
See TracChangeset
for help on using the changeset viewer.