diff options
author | Leonard Richardson <leonard.richardson@canonical.com> | 2011-02-27 16:51:56 -0500 |
---|---|---|
committer | Leonard Richardson <leonard.richardson@canonical.com> | 2011-02-27 16:51:56 -0500 |
commit | dc682f38b36294d9b102aed3be506d46f8d37b59 (patch) | |
tree | 6f0d20e8440240ffe4b88dc2a48893431dc81240 /bs4/testing.py | |
parent | d9f49a66e4a7dfd93823f2396796ed6c55f69648 (diff) |
Renamed the beautifulsoup module to bs4 to save typing.
Diffstat (limited to 'bs4/testing.py')
-rw-r--r-- | bs4/testing.py | 37 |
1 files changed, 37 insertions, 0 deletions
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)) + + + + + |