diff options
author | Leonard Richardson <leonardr@segfault.org> | 2021-02-14 15:34:04 -0500 |
---|---|---|
committer | Leonard Richardson <leonardr@segfault.org> | 2021-02-14 15:34:04 -0500 |
commit | 7201eecc09b51df5a0fb704670aa66bcc9d8e635 (patch) | |
tree | 30dd9d9df4d81eff431a53f5c47093934b06dfd1 /bs4/tests/test_tree.py | |
parent | c876fbf402f15d924b7c0d9a9be5ba80769444a3 (diff) |
The 'html5' formatter now treats attributes whose values are the
empty string as HTML boolean attributes. Previously (and in other
formatters), an attribute value must be set as None to be treated as
a boolean attribute. In a future release, I plan to also give this
behavior to the 'html' formatter. Patch by Isaac Muse. [bug=1915424]
Diffstat (limited to 'bs4/tests/test_tree.py')
-rw-r--r-- | bs4/tests/test_tree.py | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index 9267a8f..d1ca5ea 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -1846,45 +1846,6 @@ class TestEncoding(SoupTest): else: self.assertEqual(b'<b>\\u2603</b>', repr(soup)) -class TestFormatter(SoupTest): - - def test_default_attributes(self): - # Test the default behavior of Formatter.attributes(). - formatter = Formatter() - tag = Tag(name="tag") - tag['b'] = 1 - tag['a'] = 2 - - # Attributes come out sorted by name. In Python 3, attributes - # normally come out of a dictionary in the order they were - # added. - self.assertEquals([('a', 2), ('b', 1)], formatter.attributes(tag)) - - # This works even if Tag.attrs is None, though this shouldn't - # normally happen. - tag.attrs = None - self.assertEquals([], formatter.attributes(tag)) - - def test_sort_attributes(self): - # Test the ability to override Formatter.attributes() to, - # e.g., disable the normal sorting of attributes. - class UnsortedFormatter(Formatter): - def attributes(self, tag): - self.called_with = tag - for k, v in sorted(tag.attrs.items()): - if k == 'ignore': - continue - yield k,v - - soup = self.soup('<p cval="1" aval="2" ignore="ignored"></p>') - formatter = UnsortedFormatter() - decoded = soup.decode(formatter=formatter) - - # attributes() was called on the <p> tag. It filtered out one - # attribute and sorted the other two. - self.assertEquals(formatter.called_with, soup.p) - self.assertEquals(u'<p aval="2" cval="1"></p>', decoded) - class TestNavigableStringSubclasses(SoupTest): |