For Issue #16076: make sure that pickling of Element objects is tested, and do

it properly to avoid problems with test-run-order dependencies.
This commit is contained in:
Eli Bendersky 2012-12-30 06:17:49 -08:00
parent c1b59d4552
commit 7ec45f7a36
1 changed files with 15 additions and 0 deletions

View File

@ -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):