mirror of
https://github.com/python/cpython.git
synced 2025-07-29 22:24:49 +00:00
Do not chdir when running test_xml_etree, and enhance the findfile helper.
This commit is contained in:
parent
13ba1a1c65
commit
1b51c3d4de
4 changed files with 12 additions and 27 deletions
|
@ -1,10 +1,8 @@
|
||||||
# test for xml.dom.minidom
|
# test for xml.dom.minidom
|
||||||
|
|
||||||
import os
|
|
||||||
import sys
|
|
||||||
import pickle
|
import pickle
|
||||||
from StringIO import StringIO
|
from StringIO import StringIO
|
||||||
from test.test_support import verbose, run_unittest
|
from test.test_support import verbose, run_unittest, findfile
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
import xml.dom
|
import xml.dom
|
||||||
|
@ -15,12 +13,8 @@ from xml.dom.minidom import parse, Node, Document, parseString
|
||||||
from xml.dom.minidom import getDOMImplementation
|
from xml.dom.minidom import getDOMImplementation
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
tstfile = findfile("test.xml", subdir="xmltestdata")
|
||||||
base = sys.argv[0]
|
|
||||||
else:
|
|
||||||
base = __file__
|
|
||||||
tstfile = os.path.join(os.path.dirname(base), "xmltestdata", "test.xml")
|
|
||||||
del base
|
|
||||||
|
|
||||||
# The tests of DocumentType importing use these helpers to construct
|
# The tests of DocumentType importing use these helpers to construct
|
||||||
# the documents to work with, since not all DOM builders actually
|
# the documents to work with, since not all DOM builders actually
|
||||||
|
|
|
@ -15,10 +15,9 @@ from xml.sax.xmlreader import InputSource, AttributesImpl, AttributesNSImpl
|
||||||
from cStringIO import StringIO
|
from cStringIO import StringIO
|
||||||
from test.test_support import findfile, run_unittest
|
from test.test_support import findfile, run_unittest
|
||||||
import unittest
|
import unittest
|
||||||
import os
|
|
||||||
|
|
||||||
TEST_XMLFILE = findfile(os.path.join("xmltestdata", "test.xml"))
|
TEST_XMLFILE = findfile("test.xml", subdir="xmltestdata")
|
||||||
TEST_XMLFILE_OUT = findfile(os.path.join("xmltestdata", "test.xml.out"))
|
TEST_XMLFILE_OUT = findfile("test.xml.out", subdir="xmltestdata")
|
||||||
|
|
||||||
ns_uri = "http://www.python.org/xml-ns/saxtest/"
|
ns_uri = "http://www.python.org/xml-ns/saxtest/"
|
||||||
|
|
||||||
|
|
|
@ -424,12 +424,14 @@ def temp_cwd(name='tempcwd', quiet=False):
|
||||||
rmtree(name)
|
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
|
"""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
|
found the argument passed to the function is returned (this does not
|
||||||
necessarily signal failure; could still be the legitimate path)."""
|
necessarily signal failure; could still be the legitimate path)."""
|
||||||
if os.path.isabs(file):
|
if os.path.isabs(file):
|
||||||
return file
|
return file
|
||||||
|
if subdir is not None:
|
||||||
|
file = os.path.join(subdir, file)
|
||||||
path = sys.path
|
path = sys.path
|
||||||
path = [os.path.dirname(here)] + path
|
path = [os.path.dirname(here)] + path
|
||||||
for dn in path:
|
for dn in path:
|
||||||
|
|
|
@ -14,11 +14,12 @@
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from test import test_support
|
from test import test_support
|
||||||
|
from test.test_support import findfile
|
||||||
|
|
||||||
from xml.etree import ElementTree as ET
|
from xml.etree import ElementTree as ET
|
||||||
|
|
||||||
SIMPLE_XMLFILE = "xmltestdata/simple.xml"
|
SIMPLE_XMLFILE = findfile("simple.xml", subdir="xmltestdata")
|
||||||
SIMPLE_NS_XMLFILE = "xmltestdata/simple-ns.xml"
|
SIMPLE_NS_XMLFILE = findfile("simple-ns.xml", subdir="xmltestdata")
|
||||||
|
|
||||||
SAMPLE_XML = """\
|
SAMPLE_XML = """\
|
||||||
<body>
|
<body>
|
||||||
|
@ -1791,30 +1792,19 @@ def check_issue6565():
|
||||||
|
|
||||||
|
|
||||||
class CleanContext(object):
|
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):
|
def __enter__(self):
|
||||||
import os
|
|
||||||
from xml.etree import ElementTree
|
from xml.etree import ElementTree
|
||||||
self._nsmap = ElementTree._namespace_map
|
self._nsmap = ElementTree._namespace_map
|
||||||
self._path_cache = ElementTree.ElementPath._cache
|
self._path_cache = ElementTree.ElementPath._cache
|
||||||
self._previous_cwd = os.getcwd()
|
|
||||||
# Copy the default namespace mapping
|
# Copy the default namespace mapping
|
||||||
ElementTree._namespace_map = self._nsmap.copy()
|
ElementTree._namespace_map = self._nsmap.copy()
|
||||||
# Copy the path cache (should be empty)
|
# Copy the path cache (should be empty)
|
||||||
ElementTree.ElementPath._cache = self._path_cache.copy()
|
ElementTree.ElementPath._cache = self._path_cache.copy()
|
||||||
# Change directory to Lib/test/
|
|
||||||
os.chdir(os.path.dirname(__file__))
|
|
||||||
|
|
||||||
def __exit__(self, *args):
|
def __exit__(self, *args):
|
||||||
import os
|
|
||||||
from xml.etree import ElementTree
|
from xml.etree import ElementTree
|
||||||
# Restore working directory
|
|
||||||
os.chdir(self._previous_cwd)
|
|
||||||
# Restore mapping and path cache
|
# Restore mapping and path cache
|
||||||
ElementTree._namespace_map = self._nsmap
|
ElementTree._namespace_map = self._nsmap
|
||||||
ElementTree.ElementPath._cache = self._path_cache
|
ElementTree.ElementPath._cache = self._path_cache
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue