summaryrefslogtreecommitdiff
path: root/bs4/testing.py
diff options
context:
space:
mode:
authorLeonard Richardson <leonard.richardson@canonical.com>2011-02-27 16:51:56 -0500
committerLeonard Richardson <leonard.richardson@canonical.com>2011-02-27 16:51:56 -0500
commitdc682f38b36294d9b102aed3be506d46f8d37b59 (patch)
tree6f0d20e8440240ffe4b88dc2a48893431dc81240 /bs4/testing.py
parentd9f49a66e4a7dfd93823f2396796ed6c55f69648 (diff)
Renamed the beautifulsoup module to bs4 to save typing.
Diffstat (limited to 'bs4/testing.py')
-rw-r--r--bs4/testing.py37
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))
+
+
+
+
+