diff options
author | Tim Peters <tim.peters@gmail.com> | 2002-08-14 01:05:57 (GMT) |
---|---|---|
committer | Tim Peters <tim.peters@gmail.com> | 2002-08-14 01:05:57 (GMT) |
commit | 632a4fbd4dfc787705f274ce60e89d83990d3e44 (patch) | |
tree | 4dd96b9a185ea4a68f8fa7c3c79093286ff336b4 /Lib | |
parent | d41bf348257725be7c18c956e4b0ad4953a8182e (diff) | |
download | cpython-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.py | 9 |
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): |