Fixed #32556 -- Fixed assertHTMLEqual() to handle empty string as boolean attributes value.

This commit is contained in:
Hasan Ramezani 2021-03-18 11:04:43 +01:00 committed by Mariusz Felisiak
parent f6713cda89
commit 9bf5e9418f
2 changed files with 8 additions and 2 deletions

View File

@ -64,9 +64,9 @@ class Element:
for i in range(len(self.attributes)): for i in range(len(self.attributes)):
attr, value = self.attributes[i] attr, value = self.attributes[i]
other_attr, other_value = element.attributes[i] other_attr, other_value = element.attributes[i]
if value is None: if not value:
value = attr value = attr
if other_value is None: if not other_value:
other_value = other_attr other_value = other_attr
if attr != other_attr or value != other_value: if attr != other_attr or value != other_value:
return False return False

View File

@ -714,6 +714,12 @@ class HTMLEqualTests(SimpleTestCase):
with self.subTest(html1): with self.subTest(html1):
self.assertHTMLEqual(html1, html2) self.assertHTMLEqual(html1, html2)
def test_boolean_attribute(self):
html1 = '<input attr>'
html2 = '<input attr="">'
self.assertHTMLEqual(html1, html2)
self.assertEqual(parse_html(html1), parse_html(html2))
def test_normalize_refs(self): def test_normalize_refs(self):
pairs = [ pairs = [
('&#39;', '&#x27;'), ('&#39;', '&#x27;'),