diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py index fcb756d3fbc..3a87a2fa3fd 100644 --- a/Lib/unittest/case.py +++ b/Lib/unittest/case.py @@ -936,7 +936,7 @@ class TestCase(object): 'Second argument is not a string')) if first != second: - standardMsg = '%s != %s' % (safe_repr(d1, True), safe_repr(d2, True)) + standardMsg = '%s != %s' % (safe_repr(first, True), safe_repr(second, True)) diff = '\n' + ''.join(difflib.ndiff(first.splitlines(True), second.splitlines(True))) standardMsg = self._truncateMessage(standardMsg, diff) diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py index 7de79310ed4..8345443c07a 100644 --- a/Lib/unittest/test/test_case.py +++ b/Lib/unittest/test/test_case.py @@ -776,7 +776,7 @@ test case A test case is the smallest unit of testing. [...] You may provide your own implementation that does not subclass from TestCase, of course. """ - sample_text_error = """ + sample_text_error = """\ - http://www.python.org/doc/2.3/lib/module-unittest.html ? ^ + http://www.python.org/doc/2.4.1/lib/module-unittest.html @@ -787,13 +787,16 @@ test case ? +++++++++++++++++++++ + own implementation that does not subclass from TestCase, of course. """ - + self.maxDiff = None try: self.assertMultiLineEqual(sample_text, revised_sample_text) except self.failureException as e: + # need to remove the first line of the error message + error = str(e).split('\n', 1)[1] + # no fair testing ourself with ourself, and assertEqual is used for strings # so can't use assertEqual either. Just use assertTrue. - self.assertTrue(sample_text_error == str(e)) + self.assertTrue(sample_text_error == error) def testAssertIsNone(self): self.assertIsNone(None)