Browse Source

Refs #34657 -- Made assertInHTML() use unparsed needle in error messages.

Chinmoy Chakraborty 1 year ago
parent
commit
e99c7d8847
3 changed files with 11 additions and 3 deletions
  1. 1 0
      AUTHORS
  2. 3 3
      django/test/testcases.py
  3. 7 0
      tests/test_utils/tests.py

+ 1 - 0
AUTHORS

@@ -196,6 +196,7 @@ answer newbie questions, and generally made Django that much better:
     charly.wilhelm@gmail.com
     Chason Chaffin <chason@gmail.com>
     Cheng Zhang
+    Chinmoy Chakraborty <chinmoy12c@gmail.com>
     Chris Adams
     Chris Beaven <smileychris@gmail.com>
     Chris Bennett <chrisrbennett@yahoo.com>

+ 3 - 3
django/test/testcases.py

@@ -873,13 +873,13 @@ class SimpleTestCase(unittest.TestCase):
             self.fail(self._formatMessage(msg, standardMsg))
 
     def assertInHTML(self, needle, haystack, count=None, msg_prefix=""):
-        needle = assert_and_parse_html(
+        parsed_needle = assert_and_parse_html(
             self, needle, None, "First argument is not valid HTML:"
         )
-        haystack = assert_and_parse_html(
+        parsed_haystack = assert_and_parse_html(
             self, haystack, None, "Second argument is not valid HTML:"
         )
-        real_count = haystack.count(needle)
+        real_count = parsed_haystack.count(parsed_needle)
         if count is not None:
             self.assertEqual(
                 real_count,

+ 7 - 0
tests/test_utils/tests.py

@@ -983,6 +983,13 @@ class HTMLEqualTests(SimpleTestCase):
         )
 
 
+class InHTMLTests(SimpleTestCase):
+    def test_needle_msg(self):
+        msg = "False is not true : Couldn't find '<b>Hello</b>' in response"
+        with self.assertRaisesMessage(AssertionError, msg):
+            self.assertInHTML("<b>Hello</b>", "<p>Test</p>")
+
+
 class JSONEqualTests(SimpleTestCase):
     def test_simple_equal(self):
         json1 = '{"attr1": "foo", "attr2":"baz"}'