diff options
author | Eli Bendersky <eliben@gmail.com> | 2013-09-13 13:24:25 (GMT) |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2013-09-13 13:24:25 (GMT) |
commit | dd3661e7826a3cb627e96d088cf1d60befc4a5f1 (patch) | |
tree | a29a2e27029d311a66c3976b47fc90a4de833660 /Lib/test | |
parent | aa04f9ae7dacd4beefb8d21b04d0bc1db4768fbb (diff) | |
download | cpython-dd3661e7826a3cb627e96d088cf1d60befc4a5f1.zip cpython-dd3661e7826a3cb627e96d088cf1d60befc4a5f1.tar.gz cpython-dd3661e7826a3cb627e96d088cf1d60befc4a5f1.tar.bz2 |
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')
-rw-r--r-- | Lib/test/test_xml_etree.py | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 402bc2d..5496534 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): |