[Python-checkins] cpython (3.3): For Issue #16076: make sure that pickling of Element objects is tested, and do

eli.bendersky python-checkins at python.org
Sun Dec 30 15:18:33 CET 2012


http://hg.python.org/cpython/rev/71508fc738bb
changeset:   81151:71508fc738bb
branch:      3.3
parent:      81149:44a4f9289faa
user:        Eli Bendersky <eliben at gmail.com>
date:        Sun Dec 30 06:17:49 2012 -0800
summary:
  For Issue #16076: make sure that pickling of Element objects is tested, and do
it properly to avoid problems with test-run-order dependencies.

files:
  Lib/test/test_xml_etree.py |  15 +++++++++++++++
  1 files changed, 15 insertions(+), 0 deletions(-)


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

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list