Ignore:
Timestamp:
Mar 19, 2014, 11:31:01 PM (11 years ago)
Author:
dmik
Message:

python: Merge vendor 2.7.6 to trunk.

Location:
python/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • python/trunk

  • python/trunk/Lib/test/test_traceback.py

    r2 r391  
    55import sys
    66import unittest
     7from imp import reload
    78from test.test_support import run_unittest, is_jython, Error
    89
    910import traceback
    10 
    11 try:
    12     raise KeyError
    13 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")
    2011
    2112
     
    4839        err = self.get_exception_format(self.syntax_error_with_caret,
    4940                                        SyntaxError)
    50         self.assert_(len(err) == 4)
    51         self.assert_(err[1].strip() == "return x!")
    52         self.assert_("^" in err[2]) # third line has caret
    53         self.assert_(err[1].find("!") == err[2].find("^")) # in the right place
     41        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
    5445
    5546        err = self.get_exception_format(self.syntax_error_with_caret_2,
    5647                                        SyntaxError)
    57         self.assert_("^" in err[2]) # third line has caret
    58         self.assert_(err[2].count('\n') == 1) # and no additional newline
    59         self.assert_(err[1].find("+") == err[2].find("^")) # in the right place
     48        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
    6051
    6152    def test_nocaret(self):
     
    6556        err = self.get_exception_format(self.syntax_error_without_caret,
    6657                                        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")
    6960
    7061    def test_bad_indentation(self):
    7162        err = self.get_exception_format(self.syntax_error_bad_indentation,
    7263                                        IndentationError)
    73         self.assert_(len(err) == 4)
    74         self.assert_(err[1].strip() == "print 2")
    75         self.assert_("^" in err[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("^"))
    7768
    7869    def test_bug737473(self):
    79         import sys, os, tempfile, time
     70        import os, tempfile, time
    8071
    8172        savedpath = sys.path[:]
     
    114105            except NotImplementedError:
    115106                src = traceback.extract_tb(sys.exc_traceback)[-1][-1]
    116                 self.failUnlessEqual(src, 'raise NotImplementedError')
     107                self.assertEqual(src, 'raise NotImplementedError')
    117108        finally:
    118109            sys.path[:] = savedpath
     
    159150        class X(Exception):
    160151            def __str__(self):
    161                 1/0
     152                1 // 0
    162153        err = traceback.format_exception_only(X, X())
    163154        self.assertEqual(len(err), 1)
     
    169160        self.assertEqual(err, ['None\n'])
    170161
     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
    171171
    172172class TracebackFormatTests(unittest.TestCase):
    173173
    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
    175190        # Make sure that the traceback is properly indented.
    176         tb_lines = example_traceback.splitlines()
    177         self.assertEquals(len(tb_lines), 3)
     191        tb_lines = python_fmt.splitlines()
     192        self.assertEqual(len(tb_lines), 3)
    178193        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'))
    182197
    183198
Note: See TracChangeset for help on using the changeset viewer.