From d23ea06175c62b166d8a6c7a2efc090bf7ead779 Mon Sep 17 00:00:00 2001 From: Michael Foord Date: Sun, 2 May 2010 21:00:22 +0000 Subject: [PATCH] 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 ........ --- Lib/unittest/result.py | 4 +--- Lib/unittest/test/test_result.py | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/Lib/unittest/result.py b/Lib/unittest/result.py index 92b1f91a147..1dbd04cf752 100644 --- a/Lib/unittest/result.py +++ b/Lib/unittest/result.py @@ -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() diff --git a/Lib/unittest/test/test_result.py b/Lib/unittest/test/test_result.py index c7030325ac0..64798a1098e 100644 --- a/Lib/unittest/test/test_result.py +++ b/Lib/unittest/test/test_result.py @@ -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)