Refs #34657 -- Made msg_prefix handling in assertURLEqual()/assertInHTML consistent with other assertions.

Co-authored-by: Chinmoy Chakraborty <chinmoy12c@gmail.com>
This commit is contained in:
Mariusz Felisiak 2023-10-03 09:25:48 +02:00 committed by GitHub
parent 35bbb2c9c0
commit 679212a47a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 31 additions and 1 deletions

View File

@ -463,6 +463,8 @@ class SimpleTestCase(unittest.TestCase):
(scheme, netloc, path, params, urlencode(query_parts), fragment) (scheme, netloc, path, params, urlencode(query_parts), fragment)
) )
if msg_prefix:
msg_prefix += ": "
self.assertEqual( self.assertEqual(
normalize(url1), normalize(url1),
normalize(url2), normalize(url2),
@ -880,6 +882,8 @@ class SimpleTestCase(unittest.TestCase):
self, haystack, None, "Second argument is not valid HTML:" self, haystack, None, "Second argument is not valid HTML:"
) )
real_count = parsed_haystack.count(parsed_needle) real_count = parsed_haystack.count(parsed_needle)
if msg_prefix:
msg_prefix += ": "
if count is not None: if count is not None:
self.assertEqual( self.assertEqual(
real_count, real_count,

View File

@ -254,6 +254,10 @@ Miscellaneous
* In order to improve accessibility, the admin's changelist filter is now * In order to improve accessibility, the admin's changelist filter is now
rendered in a ``<nav>`` tag instead of a ``<div>``. rendered in a ``<nav>`` tag instead of a ``<div>``.
* :meth:`.SimpleTestCase.assertURLEqual` and
:meth:`~django.test.SimpleTestCase.assertInHTML` now add ``": "`` to the
``msg_prefix``. This is consistent with the behavior of other assertions.
.. _deprecated-features-5.1: .. _deprecated-features-5.1:
Features deprecated in 5.1 Features deprecated in 5.1

View File

@ -989,6 +989,28 @@ class InHTMLTests(SimpleTestCase):
with self.assertRaisesMessage(AssertionError, msg): with self.assertRaisesMessage(AssertionError, msg):
self.assertInHTML("<b>Hello</b>", "<p>Test</p>") self.assertInHTML("<b>Hello</b>", "<p>Test</p>")
def test_msg_prefix(self):
msg = "False is not true : Prefix: Couldn't find '<b>Hello</b>' in response"
with self.assertRaisesMessage(AssertionError, msg):
self.assertInHTML(
"<b>Hello</b>",
'<input type="text" name="Hello" />',
msg_prefix="Prefix",
)
def test_count_msg_prefix(self):
msg = (
"2 != 1 : Prefix: Found 2 instances of '<b>Hello</b>' in response "
"(expected 1)"
)
with self.assertRaisesMessage(AssertionError, msg):
self.assertInHTML(
"<b>Hello</b>",
"<b>Hello</b><b>Hello</b>",
count=1,
msg_prefix="Prefix",
)
class JSONEqualTests(SimpleTestCase): class JSONEqualTests(SimpleTestCase):
def test_simple_equal(self): def test_simple_equal(self):
@ -1268,7 +1290,7 @@ class AssertURLEqualTests(SimpleTestCase):
self.assertURLEqual( self.assertURLEqual(
"http://example.com/?x=1&x=2", "http://example.com/?x=1&x=2",
"https://example.com/?x=2&x=1", "https://example.com/?x=2&x=1",
msg_prefix="Prefix: ", msg_prefix="Prefix",
) )