summaryrefslogtreecommitdiff
path: root/Lib/unittest
diff options
context:
space:
mode:
authorMichael Foord <fuzzyman@voidspace.org.uk>2010-07-10 13:51:42 +0000
committerMichael Foord <fuzzyman@voidspace.org.uk>2010-07-10 13:51:42 +0000
commitcb3431b19f5301f83267dfd0364884a7cb6d58d5 (patch)
treebef9e9df79077a05090084220b45b0c25766df24 /Lib/unittest
parentc75c8d6e703dee4ec7620025fbca8c61b4c8aeb7 (diff)
downloadcpython-cb3431b19f5301f83267dfd0364884a7cb6d58d5.tar.gz
Fix error message for comparing single line strings in unittest.TestCase.assertEqual.
Issue 9174
Diffstat (limited to 'Lib/unittest')
-rw-r--r--Lib/unittest/case.py11
-rw-r--r--Lib/unittest/test/test_case.py15
2 files changed, 23 insertions, 3 deletions
diff --git a/Lib/unittest/case.py b/Lib/unittest/case.py
index 85ff002e71..28a68e8167 100644
--- a/Lib/unittest/case.py
+++ b/Lib/unittest/case.py
@@ -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))
diff --git a/Lib/unittest/test/test_case.py b/Lib/unittest/test/test_case.py
index a395fe07d6..4e9dfc6901 100644
--- a/Lib/unittest/test/test_case.py
+++ b/Lib/unittest/test/test_case.py
@@ -874,6 +874,21 @@ test case
# unicode strings - so we can't use it for this check
self.assertTrue(sample_text_error == error)
+ def testAsertEqualSingleLine(self):
+ sample_text = u"laden swallows fly slowly"
+ revised_sample_text = u"unladen swallows fly quickly"
+ sample_text_error = """\
+- laden swallows fly slowly
+? ^^^^
++ unladen swallows fly quickly
+? ++ ^^^^^
+"""
+ try:
+ self.assertEqual(sample_text, revised_sample_text)
+ except self.failureException as e:
+ error = str(e).split('\n', 1)[1]
+ self.assertTrue(sample_text_error == error)
+
def testAssertIsNone(self):
self.assertIsNone(None)
self.assertRaises(self.failureException, self.assertIsNone, False)