
python-checkins at python
Jun 15, 2012, 8:49 PM
Post #1 of 1
(43 views)
Permalink
|
|
cpython: Make the test more resilient to test-run order (closes #15075)
|
|
http://hg.python.org/cpython/rev/5782efaa8d68 changeset: 77468:5782efaa8d68 user: Eli Bendersky <eliben [at] gmail> date: Sat Jun 16 06:47:44 2012 +0300 summary: Make the test more resilient to test-run order (closes #15075) files: Lib/test/test_xml_etree.py | 28 ++++++++++++++++++------- 1 files changed, 20 insertions(+), 8 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 @@ -1279,8 +1279,7 @@ except KeyError: raise OSError("resource not found") if parse == "xml": - from xml.etree.ElementTree import XML - return XML(data) + data = ET.XML(data) return data def xinclude(): @@ -2011,12 +2010,20 @@ 'http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd')) - [at] unittest('Unstable due to module monkeypatching') class XincludeTest(unittest.TestCase): + def _my_loader(self, href, parse): + # Used to avoid a test-dependency problem where the default loader + # of ElementInclude uses the pyET parser for cET tests. + if parse == 'xml': + with open(href, 'rb') as f: + return ET.parse(f).getroot() + else: + return None + def test_xinclude_default(self): from xml.etree import ElementInclude doc = xinclude_loader('default.xml') - ElementInclude.include(doc) + ElementInclude.include(doc, self._my_loader) s = serialize(doc) self.assertEqual(s.strip(), '''<document> <p>Example.</p> @@ -2308,11 +2315,16 @@ NoAcceleratorTest, ]) - support.run_unittest(*test_classes) + try: + support.run_unittest(*test_classes) - # XXX the C module should give the same warnings as the Python module - with CleanContext(quiet=(module is not pyET)): - support.run_doctest(sys.modules[__name__], verbosity=True) + # XXX the C module should give the same warnings as the Python module + with CleanContext(quiet=(module is not pyET)): + support.run_doctest(sys.modules[__name__], verbosity=True) + finally: + # don't interfere with subsequent tests + ET = pyET = None + if __name__ == '__main__': test_main() -- Repository URL: http://hg.python.org/cpython
|