[Python-checkins] python/dist/src/Lib doctest.py,1.78,1.79
tim_one at users.sourceforge.net
tim_one at users.sourceforge.net
Mon Aug 23 23:38:01 CEST 2004
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15923/Lib
Modified Files:
doctest.py
Log Message:
debug_script(): I changed this in haste before to take out the use of
NamedTemporaryFile (which can't work for this function's purposes on
Windows). Leaving temp files behind wasn't a great idea either, though,
so try to clean up. At least the test suite no longer leaves any of
these guys behind now.
Index: doctest.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/doctest.py,v
retrieving revision 1.78
retrieving revision 1.79
diff -u -d -r1.78 -r1.79
--- doctest.py 22 Aug 2004 20:51:53 -0000 1.78
+++ doctest.py 23 Aug 2004 21:37:56 -0000 1.79
@@ -2342,26 +2342,33 @@
"Debug a test script. `src` is the script, as a string."
import pdb
- srcfilename = tempfile.mktemp("doctestdebug.py")
+ # Note that tempfile.NameTemporaryFile() cannot be used. As the
+ # docs say, a file so created cannot be opened by name a second time
+ # on modern Windows boxes, and execfile() needs to open it.
+ srcfilename = tempfile.mktemp(".py", "doctestdebug")
f = open(srcfilename, 'w')
f.write(src)
f.close()
- if globs:
- globs = globs.copy()
- else:
- globs = {}
+ try:
+ if globs:
+ globs = globs.copy()
+ else:
+ globs = {}
- if pm:
- try:
- execfile(srcfilename, globs, globs)
- except:
- print sys.exc_info()[1]
- pdb.post_mortem(sys.exc_info()[2])
- else:
- # Note that %r is vital here. '%s' instead can, e.g., cause
- # backslashes to get treated as metacharacters on Windows.
- pdb.run("execfile(%r)" % srcfilename, globs, globs)
+ if pm:
+ try:
+ execfile(srcfilename, globs, globs)
+ except:
+ print sys.exc_info()[1]
+ pdb.post_mortem(sys.exc_info()[2])
+ else:
+ # Note that %r is vital here. '%s' instead can, e.g., cause
+ # backslashes to get treated as metacharacters on Windows.
+ pdb.run("execfile(%r)" % srcfilename, globs, globs)
+
+ finally:
+ os.remove(srcfilename)
def debug(module, name, pm=False):
"""Debug a single doctest docstring.
More information about the Python-checkins
mailing list