diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 9cebc3cd7fa..ce6bdc6d8b5 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):