Skip to content
Next Next commit
Revert "bpo-36543: Remove the xml.etree.cElementTree module. (GH-19108)"
This reverts commit b33e525.
  • Loading branch information
serhiy-storchaka authored May 5, 2020
commit d64c2da6c8597fb4e79da55ff0c6788695688b5a
15 changes: 15 additions & 0 deletions Lib/test/test_xml_etree_c.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@

cET = import_fresh_module('xml.etree.ElementTree',
fresh=['_elementtree'])
cET_alias = import_fresh_module('xml.etree.cElementTree',
fresh=['_elementtree', 'xml.etree'],
deprecated=True)


@unittest.skipUnless(cET, 'requires _elementtree')
Expand Down Expand Up @@ -167,6 +170,14 @@ def test_xmlpullparser_leaks(self):
support.gc_collect()


@unittest.skipUnless(cET, 'requires _elementtree')
class TestAliasWorking(unittest.TestCase):
# Test that the cET alias module is alive
def test_alias_working(self):
e = cET_alias.Element('foo')
self.assertEqual(e.tag, 'foo')


@unittest.skipUnless(cET, 'requires _elementtree')
@support.cpython_only
class TestAcceleratorImported(unittest.TestCase):
Expand All @@ -175,6 +186,9 @@ def test_correct_import_cET(self):
# SubElement is a function so it retains _elementtree as its module.
self.assertEqual(cET.SubElement.__module__, '_elementtree')

def test_correct_import_cET_alias(self):
self.assertEqual(cET_alias.SubElement.__module__, '_elementtree')

def test_parser_comes_from_C(self):
# The type of methods defined in Python code is types.FunctionType,
# while the type of methods defined inside _elementtree is
Expand Down Expand Up @@ -214,6 +228,7 @@ def test_main():
# Run the tests specific to the C implementation
support.run_unittest(
MiscTests,
TestAliasWorking,
TestAcceleratorImported,
SizeofTest,
)
Expand Down
3 changes: 3 additions & 0 deletions Lib/xml/etree/cElementTree.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Deprecated alias for xml.etree.ElementTree

from xml.etree.ElementTree import *