Merged revisions 80708 via svnmerge from

svn+ssh://pythondev@svn.python.org/python/trunk

........
  r80708 | michael.foord | 2010-05-02 21:39:42 +0100 (Sun, 02 May 2010) | 1 line

  Fix unittest tests to not abuse traceback.format_exception
........
This commit is contained in:
Michael Foord 2010-05-02 21:00:22 +00:00
parent 6e20a1bdf0
commit d23ea06175
2 changed files with 16 additions and 4 deletions

View File

@ -153,9 +153,7 @@ class TestResult(object):
length = self._count_relevant_tb_levels(tb)
msgLines = traceback.format_exception(exctype, value, tb, length)
else:
chain = exctype is not None
msgLines = traceback.format_exception(exctype, value, tb,
chain=chain)
msgLines = traceback.format_exception(exctype, value, tb)
if self.buffer:
output = sys.stdout.getvalue()

View File

@ -4,6 +4,7 @@ import textwrap
from test import support
import traceback
import unittest
@ -361,6 +362,15 @@ class Test_OldTestResult(unittest.TestCase):
runner.run(Test('testFoo'))
class MockTraceback(object):
@staticmethod
def format_exception(*_):
return ['A traceback']
def restore_traceback():
unittest.result.traceback = traceback
class TestOutputBuffering(unittest.TestCase):
def setUp(self):
@ -441,6 +451,9 @@ class TestOutputBuffering(unittest.TestCase):
return result
def testBufferOutputAddErrorOrFailure(self):
unittest.result.traceback = MockTraceback
self.addCleanup(restore_traceback)
for message_attr, add_attr, include_error in [
('errors', 'addError', True),
('failures', 'addFailure', False),
@ -476,7 +489,8 @@ class TestOutputBuffering(unittest.TestCase):
Stderr:
bar
""")
expectedFullMessage = 'NoneType\n%s%s' % (expectedOutMessage, expectedErrMessage)
expectedFullMessage = 'A traceback%s%s' % (expectedOutMessage, expectedErrMessage)
self.assertIs(test, self)
self.assertEqual(result._original_stdout.getvalue(), expectedOutMessage)