summaryrefslogtreecommitdiff
path: root/Lib/test/test_xml_etree.py
diff options
context:
space:
mode:
authorEli Bendersky <eliben@gmail.com>2013-09-13 06:24:25 -0700
committerEli Bendersky <eliben@gmail.com>2013-09-13 06:24:25 -0700
commitdd3661e7826a3cb627e96d088cf1d60befc4a5f1 (patch)
treea29a2e27029d311a66c3976b47fc90a4de833660 /Lib/test/test_xml_etree.py
parentaa04f9ae7dacd4beefb8d21b04d0bc1db4768fbb (diff)
downloadcpython-git-dd3661e7826a3cb627e96d088cf1d60befc4a5f1.tar.gz
Issue #18997: fix ElementTree crash with using pickle and __getstate__.
Based on report and initial patch from Germán M. Bravo
Diffstat (limited to 'Lib/test/test_xml_etree.py')
-rw-r--r--Lib/test/test_xml_etree.py13
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py
index 402bc2df2a..54965345c7 100644
--- a/Lib/test/test_xml_etree.py
+++ b/Lib/test/test_xml_etree.py
@@ -1462,6 +1462,7 @@ class BugsTest(unittest.TestCase):
ET.register_namespace('test10777', 'http://myuri/')
ET.register_namespace('test10777', 'http://myuri/')
+
# --------------------------------------------------------------------
@@ -1542,6 +1543,18 @@ class BasicElementTest(ElementTestCase, unittest.TestCase):
self.assertEqual(len(e2), 2)
self.assertEqualElements(e, e2)
+ def test_pickle_issue18997(self):
+ for dumper, loader in product(self.modules, repeat=2):
+ XMLTEXT = """<?xml version="1.0"?>
+ <group><dogs>4</dogs>
+ </group>"""
+ e1 = dumper.fromstring(XMLTEXT)
+ if hasattr(e1, '__getstate__'):
+ self.assertEqual(e1.__getstate__()['tag'], 'group')
+ e2 = self.pickleRoundTrip(e1, 'xml.etree.ElementTree', dumper, loader)
+ self.assertEqual(e2.tag, 'group')
+ self.assertEqual(e2[0].tag, 'dogs')
+
class ElementTreeTypeTest(unittest.TestCase):
def test_istype(self):