summaryrefslogtreecommitdiff
path: root/bs4
diff options
context:
space:
mode:
Diffstat (limited to 'bs4')
-rw-r--r--bs4/element.py8
-rw-r--r--bs4/tests/test_tree.py10
2 files changed, 14 insertions, 4 deletions
diff --git a/bs4/element.py b/bs4/element.py
index e50f639..650bacf 100644
--- a/bs4/element.py
+++ b/bs4/element.py
@@ -848,9 +848,11 @@ class Tag(PageElement):
s = ''.join(s)
return s
- def prettify(self, encoding=DEFAULT_OUTPUT_ENCODING,
- formatter="minimal"):
- return self.encode(encoding, True, formatter)
+ def prettify(self, encoding=None, formatter="minimal"):
+ if encoding is None:
+ return self.decode(True, formatter=formatter)
+ else:
+ return self.encode(encoding, True, formatter=formatter)
def decode_contents(self, indent_level=None,
eventual_encoding=DEFAULT_OUTPUT_ENCODING,
diff --git a/bs4/tests/test_tree.py b/bs4/tests/test_tree.py
index c75b561..4dda90e 100644
--- a/bs4/tests/test_tree.py
+++ b/bs4/tests/test_tree.py
@@ -1201,7 +1201,15 @@ class TestSubstitutions(SoupTest):
def test_prettify_accepts_formatter(self):
soup = BeautifulSoup("<html><body>foo</body></html>")
pretty = soup.prettify(formatter = lambda x: x.upper())
- self.assertTrue(b"FOO" in pretty)
+ self.assertTrue("FOO" in pretty)
+
+ def test_prettify_outputs_unicode_by_default(self):
+ soup = self.soup("<a></a>")
+ self.assertEqual(unicode, type(soup.prettify()))
+
+ def test_prettify_can_encode_data(self):
+ soup = self.soup("<a></a>")
+ self.assertEqual(bytes, type(soup.prettify("utf-8")))
def test_html_entity_substitution_off_by_default(self):
markup = u"<b>Sacr\N{LATIN SMALL LETTER E WITH ACUTE} bleu!</b>"