From 089d9ca1df43fb36eaa857e2d617a94a82c6b906 Mon Sep 17 00:00:00 2001 From: Ian Clelland Date: Thu, 27 Sep 2012 16:52:24 -0700 Subject: [PATCH] Add assertJSONEqual method to TestCase --- django/test/testcases.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/django/test/testcases.py b/django/test/testcases.py index 9e92bf5bb5..6f9bc0e724 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -407,6 +407,18 @@ class SimpleTestCase(ut2.TestCase): self.assertTrue(real_count != 0, msg_prefix + "Couldn't find '%s' in response" % needle) + def assertJSONEqual(self, raw, expected_data, msg=None): + try: + data = json.loads(raw) + except ValueError: + self.fail("First argument is not valid JSON: %r" % raw) + if isinstance(expected_data, six.string_types): + try: + expected_data = json.loads(expected_data) + except ValueError: + self.fail("Second argument is not valid JSON: %r" % expected_data) + self.assertEqual(data, expected_data, msg=msg) + def assertXMLEqual(self, xml1, xml2, msg=None): """ Asserts that two XML snippets are semantically the same.