summaryrefslogtreecommitdiffstats
path: root/Lib
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2002-08-14 01:05:57 (GMT)
committerTim Peters <tim.peters@gmail.com>2002-08-14 01:05:57 (GMT)
commit632a4fbd4dfc787705f274ce60e89d83990d3e44 (patch)
tree4dd96b9a185ea4a68f8fa7c3c79093286ff336b4 /Lib
parentd41bf348257725be7c18c956e4b0ad4953a8182e (diff)
downloadcpython-632a4fbd4dfc787705f274ce60e89d83990d3e44.zip
cpython-632a4fbd4dfc787705f274ce60e89d83990d3e44.tar.gz
cpython-632a4fbd4dfc787705f274ce60e89d83990d3e44.tar.bz2
runtest(): I don't know why we don't just use TESTFN, but if we have to
do bizarre things to get a temp file, I changed it to use mkstemp instead of NamedTemporaryFile. This tried to leave the file open while passing its name to execfile(). On Win2K (but not Win9X), though, a file created with O_TEMPORARY cannot be opened again, so the test failed with a permission error when execfile tried to open it. Closer to the truth: a file created with O_TEMPORARY can be opened again, but only if the file is also created with SHARE_DELETE access via the Win32 CreateFile() function. There's no way to get at that from MS's version of libc, though (we'd have to ditch the "std" C file functions in favor of Win32 API calls).
Diffstat (limited to 'Lib')
-rw-r--r--Lib/test/test_pkg.py9
1 files changed, 5 insertions, 4 deletions
diff --git a/Lib/test/test_pkg.py b/Lib/test/test_pkg.py
index 7dec2e9..36ea95c 100644
--- a/Lib/test/test_pkg.py
+++ b/Lib/test/test_pkg.py
@@ -56,18 +56,19 @@ def runtest(hier, code):
root = tempfile.mkdtemp()
mkhier(root, hier)
savepath = sys.path[:]
- codefile = tempfile.NamedTemporaryFile()
- codefile.write(code)
- codefile.flush()
+ fd, fname = tempfile.mkstemp(binary=False)
+ os.write(fd, code)
+ os.close(fd)
try:
sys.path.insert(0, root)
if verbose: print "sys.path =", sys.path
try:
- execfile(codefile.name, globals(), {})
+ execfile(fname, globals(), {})
except:
traceback.print_exc(file=sys.stdout)
finally:
sys.path[:] = savepath
+ os.unlink(fname)
try:
cleanout(root)
except (os.error, IOError):