diff options
author | Eli Bendersky <eliben@gmail.com> | 2012-12-30 06:17:49 -0800 |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2012-12-30 06:17:49 -0800 |
commit | 01e1f22e86449557ccf46868386acc06f59987c8 (patch) | |
tree | 6778f0f651682f80fb92b2a193873b4716b603fa /Lib/test/test_xml_etree.py | |
parent | a23d13853f0345872eb61fe206a785dcd44dac54 (diff) | |
download | cpython-01e1f22e86449557ccf46868386acc06f59987c8.tar.gz |
For Issue #16076: make sure that pickling of Element objects is tested, and do
it properly to avoid problems with test-run-order dependencies.
Diffstat (limited to 'Lib/test/test_xml_etree.py')
-rw-r--r-- | Lib/test/test_xml_etree.py | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 9cebc3cd7f..ce6bdc6d8b 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -16,6 +16,7 @@ import html import io +import pickle import sys import unittest import weakref @@ -1768,6 +1769,20 @@ class BasicElementTest(unittest.TestCase): self.assertEqual(flag, True) self.assertEqual(wref(), None) + def test_pickle(self): + # For now this test only works for the Python version of ET, + # so set sys.modules accordingly because pickle uses __import__ + # to load the __module__ of the class. + if pyET: + sys.modules['xml.etree.ElementTree'] = pyET + else: + raise unittest.SkipTest('only for the Python version') + e1 = ET.Element('foo', bar=42) + s = pickle.dumps(e1) + e2 = pickle.loads(s) + self.assertEqual(e2.tag, 'foo') + self.assertEqual(e2.attrib['bar'], 42) + class ElementTreeTest(unittest.TestCase): def test_istype(self): |