From 27cbb19ae562f258e64120c8ed17616719e32722 Mon Sep 17 00:00:00 2001 From: Eli Bendersky Date: Fri, 15 Jun 2012 09:03:19 +0300 Subject: Removed _SimpleElementPath and its flaky test. The test monkey-patches the module, which causes other failures and fails itself depending on the order tests are run. --- Lib/test/test_xml_etree.py | 23 ----------------------- Lib/xml/etree/ElementTree.py | 26 +------------------------- 2 files changed, 1 insertion(+), 48 deletions(-) diff --git a/Lib/test/test_xml_etree.py b/Lib/test/test_xml_etree.py index 22a1773..87398b4 100644 --- a/Lib/test/test_xml_etree.py +++ b/Lib/test/test_xml_etree.py @@ -2234,28 +2234,6 @@ class NoAcceleratorTest(unittest.TestCase): self.assertEqual(pyET.Element.__module__, 'xml.etree.ElementTree') self.assertEqual(pyET.SubElement.__module__, 'xml.etree.ElementTree') - -class ElementPathFallbackTest(unittest.TestCase): - def test_fallback(self): - current_ElementPath = ET.ElementPath - ET.ElementPath = ET._SimpleElementPath() - elem = ET.XML(SAMPLE_XML) - self.assertEqual(elem.find('tag').tag, 'tag') - self.assertEqual(ET.ElementTree(elem).find('tag').tag, 'tag') - self.assertEqual(elem.findtext('tag'), 'text') - self.assertIsNone(elem.findtext('tog')) - self.assertEqual(elem.findtext('tog', 'default'), 'default') - self.assertEqual(ET.ElementTree(elem).findtext('tag'), 'text') - self.assertEqual(summarize_list(elem.findall('tag')), ['tag', 'tag']) - self.assertEqual(summarize_list(elem.findall('.//tag')), - ['tag', 'tag', 'tag']) - - #self.assertIsNone(elem.find('section/tag')) - #self.assertIsNone(elem.findtext('section/tag')) - self.assertEqual(summarize_list(elem.findall('section/tag')), []) - - ET.ElementPath = current_ElementPath - # -------------------------------------------------------------------- @@ -2328,7 +2306,6 @@ def test_main(module=None): if pyET: test_classes.extend([ NoAcceleratorTest, - ElementPathFallbackTest, ]) support.run_unittest(*test_classes) diff --git a/Lib/xml/etree/ElementTree.py b/Lib/xml/etree/ElementTree.py index 4776625..d30a83c 100644 --- a/Lib/xml/etree/ElementTree.py +++ b/Lib/xml/etree/ElementTree.py @@ -101,32 +101,8 @@ import sys import re import warnings -class _SimpleElementPath: - # emulate pre-1.2 find/findtext/findall behaviour - def find(self, element, tag, namespaces=None): - for elem in element: - if elem.tag == tag: - return elem - return None - def findtext(self, element, tag, default=None, namespaces=None): - elem = self.find(element, tag) - if elem is None: - return default - return elem.text or "" - def iterfind(self, element, tag, namespaces=None): - if tag[:3] == ".//": - for elem in element.iter(tag[3:]): - yield elem - for elem in element: - if elem.tag == tag: - yield elem - def findall(self, element, tag, namespaces=None): - return list(self.iterfind(element, tag, namespaces)) +from . import ElementPath -try: - from . import ElementPath -except ImportError: - ElementPath = _SimpleElementPath() ## # Parser error. This is a subclass of SyntaxError. -- cgit v0.12