Commits

Eli Bendersky committed 71508fc Draft

For Issue #16076: make sure that pickling of Element objects is tested, and do
it properly to avoid problems with test-run-order dependencies.

  • Participants
  • Parent commits 44a4f92
  • Branches 3.3

Comments (0)

Files changed (1)

Lib/test/test_xml_etree.py

 
 import html
 import io
+import pickle
 import sys
 import unittest
 import weakref
         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):