Fix error message for comparing single line strings in unittest.TestCase.assertEqual.

Issue 9174
This commit is contained in:
Michael Foord 2010-07-10 13:51:42 +00:00
parent 8e93f4e791
commit 94f071c715
2 changed files with 23 additions and 3 deletions

View file

@ -895,9 +895,14 @@ class TestCase(object):
'Second argument is not a string'))
if first != second:
standardMsg = '%s != %s' % (safe_repr(first, True), safe_repr(second, True))
diff = '\n' + ''.join(difflib.ndiff(first.splitlines(True),
second.splitlines(True)))
firstlines = first.splitlines(True)
secondlines = second.splitlines(True)
if len(firstlines) == 1 and first.strip('\r\n') == first:
firstlines = [first + '\n']
secondlines = [second + '\n']
standardMsg = '%s != %s' % (safe_repr(first, True),
safe_repr(second, True))
diff = '\n' + ''.join(difflib.ndiff(firstlines, secondlines))
standardMsg = self._truncateMessage(standardMsg, diff)
self.fail(self._formatMessage(msg, standardMsg))