]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Do not chdir when running test_xml_etree, and enhance the findfile helper.
authorFlorent Xicluna <florent.xicluna@gmail.com>
Sat, 13 Mar 2010 12:41:48 +0000 (12:41 +0000)
committerFlorent Xicluna <florent.xicluna@gmail.com>
Sat, 13 Mar 2010 12:41:48 +0000 (12:41 +0000)
Lib/test/test_minidom.py
Lib/test/test_sax.py
Lib/test/test_support.py
Lib/test/test_xml_etree.py

index a8c0b10ac87b213916397dd1ccc14272d9c23ac1..fad7f36f76ec42735399171fa3cf7671e0bd9bfa 100644 (file)
@@ -1,10 +1,8 @@
 # test for xml.dom.minidom
 
-import os
-import sys
 import pickle
 from StringIO import StringIO
-from test.test_support import verbose, run_unittest
+from test.test_support import verbose, run_unittest, findfile
 import unittest
 
 import xml.dom
@@ -15,12 +13,8 @@ from xml.dom.minidom import parse, Node, Document, parseString
 from xml.dom.minidom import getDOMImplementation
 
 
-if __name__ == "__main__":
-    base = sys.argv[0]
-else:
-    base = __file__
-tstfile = os.path.join(os.path.dirname(base), "xmltestdata", "test.xml")
-del base
+tstfile = findfile("test.xml", subdir="xmltestdata")
+
 
 # The tests of DocumentType importing use these helpers to construct
 # the documents to work with, since not all DOM builders actually
index 22048e6f7a0a36cca2edd064760f51f9520cdbd7..df7daf1955b3fa13e4df7d4c633e7fa11ed6dc71 100644 (file)
@@ -15,10 +15,9 @@ from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
 from cStringIO import StringIO
 from test.test_support import findfile, run_unittest
 import unittest
-import os
 
-TEST_XMLFILE = findfile(os.path.join("xmltestdata", "test.xml"))
-TEST_XMLFILE_OUT = findfile(os.path.join("xmltestdata", "test.xml.out"))
+TEST_XMLFILE = findfile("test.xml", subdir="xmltestdata")
+TEST_XMLFILE_OUT = findfile("test.xml.out", subdir="xmltestdata")
 
 ns_uri = "http://www.python.org/xml-ns/saxtest/"
 
index c8aed4eebd0080353830ec2a98df106f32338e88..a8f9fbf78f2c5408d7b567f0e13e5f3e320b18a7 100644 (file)
@@ -424,12 +424,14 @@ def temp_cwd(name='tempcwd', quiet=False):
             rmtree(name)
 
 
-def findfile(file, here=__file__):
+def findfile(file, here=__file__, subdir=None):
     """Try to find a file on sys.path and the working directory.  If it is not
     found the argument passed to the function is returned (this does not
     necessarily signal failure; could still be the legitimate path)."""
     if os.path.isabs(file):
         return file
+    if subdir is not None:
+        file = os.path.join(subdir, file)
     path = sys.path
     path = [os.path.dirname(here)] + path
     for dn in path:
index b99e42a58239bdeec589fda7a8109cf39dc70753..cdb9fdfbef0ab43f5ef74677e6624397f5af334a 100644 (file)
 import sys
 
 from test import test_support
+from test.test_support import findfile
 
 from xml.etree import ElementTree as ET
 
-SIMPLE_XMLFILE = "xmltestdata/simple.xml"
-SIMPLE_NS_XMLFILE = "xmltestdata/simple-ns.xml"
+SIMPLE_XMLFILE = findfile("simple.xml", subdir="xmltestdata")
+SIMPLE_NS_XMLFILE = findfile("simple-ns.xml", subdir="xmltestdata")
 
 SAMPLE_XML = """\
 <body>
@@ -1791,30 +1792,19 @@ def check_issue6565():
 
 
 class CleanContext(object):
-    """Provide default namespace mapping, path cache and working directory.
+    """Provide default namespace mapping and path cache."""
 
-    Save and restore the default namespace mapping and the path cache.
-    Change directory to the "Lib/test/" directory: some tests open
-    xml files in the "samples/" directory relative to the test module.
-    """
     def __enter__(self):
-        import os
         from xml.etree import ElementTree
         self._nsmap = ElementTree._namespace_map
         self._path_cache = ElementTree.ElementPath._cache
-        self._previous_cwd = os.getcwd()
         # Copy the default namespace mapping
         ElementTree._namespace_map = self._nsmap.copy()
         # Copy the path cache (should be empty)
         ElementTree.ElementPath._cache = self._path_cache.copy()
-        # Change directory to Lib/test/
-        os.chdir(os.path.dirname(__file__))
 
     def __exit__(self, *args):
-        import os
         from xml.etree import ElementTree
-        # Restore working directory
-        os.chdir(self._previous_cwd)
         # Restore mapping and path cache
         ElementTree._namespace_map = self._nsmap
         ElementTree.ElementPath._cache = self._path_cache