diff options
author | Leonard Richardson <leonard.richardson@canonical.com> | 2012-04-16 10:06:26 -0400 |
---|---|---|
committer | Leonard Richardson <leonard.richardson@canonical.com> | 2012-04-16 10:06:26 -0400 |
commit | 0afe0af7cd8240ab790ccbcea6ecbdf69f21461e (patch) | |
tree | bd6a8fc992d24d144466e74ea9f7b2ac4fb31fa1 /bs4/tests/test_tree.py | |
parent | c40bc98de62545aa8855311a1d046af5cd9020ba (diff) |
Attribute values are now run through the provided output formatter. Previously they were always run through the 'minimal' formatter. [bug=980237]
Diffstat (limited to 'bs4/tests/test_tree.py')
-rw-r--r-- | bs4/tests/test_tree.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py index f4fe451..661decb 100644 --- a/bs4/tests/test_tree.py +++ b/bs4/tests/test_tree.py @@ -1219,6 +1219,23 @@ class TestSubstitutions(SoupTest): decoded, self.document_for(u"<b><FOO></b><b>BAR</b>")) + def test_formatter_is_run_on_attribute_values(self): + markup = u'<a href="http://a.com?a=b&c=é">e</a>' + soup = self.soup(markup) + a = soup.a + + expect_minimal = u'<a href="http://a.com?a=b&c=é">e</a>' + + self.assertEqual(expect_minimal, a.decode()) + self.assertEqual(expect_minimal, a.decode(formatter="minimal")) + + expect_html = u'<a href="http://a.com?a=b&c=é">e</a>' + self.assertEqual(expect_html, a.decode(formatter="html")) + + self.assertEqual(markup, a.decode(formatter=None)) + expect_upper = u'<a href="HTTP://A.COM?A=B&C=É">E</a>' + self.assertEqual(expect_upper, a.decode(formatter=lambda x: x.upper())) + def test_prettify_accepts_formatter(self): soup = BeautifulSoup("<html><body>foo</body></html>") pretty = soup.prettify(formatter = lambda x: x.upper()) @@ -1309,7 +1326,7 @@ class TestEncoding(SoupTest): def test_encode_contents(self): html = u"<b>\N{SNOWMAN}</b>" soup = self.soup(html) - self.assertEquals( + self.assertEqual( u"\N{SNOWMAN}".encode("utf8"), soup.b.encode_contents( encoding="utf8")) |