diff options
| author | Caio Ariede <caio.ariede@gmail.com> | 2015-08-02 17:07:31 -0300 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2015-08-04 09:16:34 -0400 |
| commit | 62d4074005f68328b240ab5f4fdfe348896717da (patch) | |
| tree | e8238311733c0ada156c2f7838f3516a4c67018b | |
| parent | c6c00fbfbb659de4beaad3c612c271ac74f892a7 (diff) | |
Fixed #25191 -- Added string diff to SimpleTestCase.assertXMLEqual() message.
| -rw-r--r-- | django/test/testcases.py | 7 | ||||
| -rw-r--r-- | tests/test_utils/tests.py | 13 |
2 files changed, 20 insertions, 0 deletions
diff --git a/django/test/testcases.py b/django/test/testcases.py index eed67e9cda..93ad8b9354 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -784,6 +784,13 @@ class SimpleTestCase(unittest.TestCase): else: if not result: standardMsg = '%s != %s' % (safe_repr(xml1, True), safe_repr(xml2, True)) + diff = ('\n' + '\n'.join( + difflib.ndiff( + six.text_type(xml1).splitlines(), + six.text_type(xml2).splitlines(), + ) + )) + standardMsg = self._truncateMessage(standardMsg, diff) self.fail(self._formatMessage(msg, standardMsg)) def assertXMLNotEqual(self, xml1, xml2, msg=None): diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py index d61d797173..6869f49666 100644 --- a/tests/test_utils/tests.py +++ b/tests/test_utils/tests.py @@ -710,6 +710,19 @@ class XMLEqualTests(SimpleTestCase): with self.assertRaises(AssertionError): self.assertXMLEqual(xml1, xml2) + def test_simple_equal_raises_message(self): + xml1 = "<elem attr1='a' />" + xml2 = "<elem attr2='b' attr1='a' />" + + msg = '''{xml1} != {xml2} +- <elem attr1='a' /> ++ <elem attr2='b' attr1='a' /> +? ++++++++++ +'''.format(xml1=repr(xml1), xml2=repr(xml2)) + + with self.assertRaisesMessage(AssertionError, msg): + self.assertXMLEqual(xml1, xml2) + def test_simple_not_equal(self): xml1 = "<elem attr1='a' attr2='c' />" xml2 = "<elem attr1='a' attr2='b' />" |
