From dc682f38b36294d9b102aed3be506d46f8d37b59 Mon Sep 17 00:00:00 2001 From: Leonard Richardson Date: Sun, 27 Feb 2011 16:51:56 -0500 Subject: Renamed the beautifulsoup module to bs4 to save typing. --- bs4/testing.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 bs4/testing.py (limited to 'bs4/testing.py') diff --git a/bs4/testing.py b/bs4/testing.py new file mode 100644 index 0000000..9d9c26a --- /dev/null +++ b/bs4/testing.py @@ -0,0 +1,37 @@ +"""Helper classes for tests.""" + +import unittest +from bs4 import BeautifulSoup +from bs4.element import Comment, SoupStrainer +from bs4.builder import LXMLTreeBuilder + +class SoupTest(unittest.TestCase): + + @property + def default_builder(self): + return LXMLTreeBuilder() + + def soup(self, markup, **kwargs): + """Build a Beautiful Soup object from markup.""" + builder = kwargs.pop('builder', self.default_builder) + return BeautifulSoup(markup, builder=builder, **kwargs) + + def document_for(self, markup): + """Turn an HTML fragment into a document. + + The details depend on the builder. + """ + return self.default_builder.test_fragment_to_document(markup) + + def assertSoupEquals(self, to_parse, compare_parsed_to=None): + builder = self.default_builder + obj = BeautifulSoup(to_parse, builder=builder) + if compare_parsed_to is None: + compare_parsed_to = to_parse + + self.assertEquals(obj.decode(), self.document_for(compare_parsed_to)) + + + + + -- cgit v1.2.3