From dc704516c240011a9aeda17f631ade35c65cda58 Mon Sep 17 00:00:00 2001 From: Ian Clelland Date: Thu, 27 Sep 2012 16:49:10 -0700 Subject: [PATCH] Add assertInHTML method to TestCase --- django/test/testcases.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/django/test/testcases.py b/django/test/testcases.py index 3af6b8c346..9e92bf5bb5 100644 --- a/django/test/testcases.py +++ b/django/test/testcases.py @@ -393,6 +393,20 @@ class SimpleTestCase(ut2.TestCase): safe_repr(dom1, True), safe_repr(dom2, True)) self.fail(self._formatMessage(msg, standardMsg)) + def assertInHTML(self, needle, haystack, count = None, msg_prefix=''): + needle = assert_and_parse_html(self, needle, None, + 'First argument is not valid HTML:') + haystack = assert_and_parse_html(self, haystack, None, + 'Second argument is not valid HTML:') + real_count = haystack.count(needle) + if count is not None: + self.assertEqual(real_count, count, + msg_prefix + "Found %d instances of '%s' in response" + " (expected %d)" % (real_count, needle, count)) + else: + self.assertTrue(real_count != 0, + msg_prefix + "Couldn't find '%s' in response" % needle) + def assertXMLEqual(self, xml1, xml2, msg=None): """ Asserts that two XML snippets are semantically the same.