summaryrefslogtreecommitdiff
path: root/Lib/test/test_xml_etree.py
diff options
context:
space:
mode:
authorEli Bendersky <eliben@gmail.com>2012-12-30 06:17:49 -0800
committerEli Bendersky <eliben@gmail.com>2012-12-30 06:17:49 -0800
commit01e1f22e86449557ccf46868386acc06f59987c8 (patch)
tree6778f0f651682f80fb92b2a193873b4716b603fa /Lib/test/test_xml_etree.py
parenta23d13853f0345872eb61fe206a785dcd44dac54 (diff)
downloadcpython-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.py15
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):