summaryrefslogtreecommitdiff
path: root/bs4/tests/test_lxml.py
diff options
context:
space:
mode:
Diffstat (limited to 'bs4/tests/test_lxml.py')
-rw-r--r--bs4/tests/test_lxml.py12
1 files changed, 12 insertions, 0 deletions
diff --git a/bs4/tests/test_lxml.py b/bs4/tests/test_lxml.py
index 41319d1..396ca0e 100644
--- a/bs4/tests/test_lxml.py
+++ b/bs4/tests/test_lxml.py
@@ -1,5 +1,6 @@
"""Tests to ensure that the lxml tree builder generates good trees."""
+import pickle
import re
import warnings
@@ -185,3 +186,14 @@ class TestLXMLXMLTreeBuilder(SoupTest, XMLTreeBuilderSmokeTest):
assert soup.find('prefix:tag2').name == 'tag2'
assert soup.find('prefix:tag3').name == 'tag3'
assert soup.subtag.find('prefix:tag3').name == 'tag3'
+
+ def test_pickle_removes_builder(self):
+ # The lxml TreeBuilder is not picklable, so it won't be
+ # preserved in a pickle/unpickle operation.
+
+ soup = self.soup("<a>some markup</a>")
+ assert isinstance(soup.builder, self.default_builder)
+ pickled = pickle.dumps(soup)
+ unpickled = pickle.loads(pickled)
+ assert "some markup" == unpickled.a.string
+ assert unpickled.builder is None