[Zope3-checkins] CVS: Zope3/src/zope/testing - doctestunit.py:1.7
Jim Fulton
jim at zope.com
Tue Jan 6 14:50:44 EST 2004
Update of /cvs-repository/Zope3/src/zope/testing
In directory cvs.zope.org:/tmp/cvs-serv13690/src/zope/testing
Modified Files:
doctestunit.py
Log Message:
Added a post-mortem (pm) option to the debug function.
If given a true value, then the test will be run outside the debugger
until al error occurs, at which point, the error will be printed and
the user will be dropped into the post-mortem debugger.
=== Zope3/src/zope/testing/doctestunit.py 1.6 => 1.7 ===
--- Zope3/src/zope/testing/doctestunit.py:1.6 Mon Nov 3 16:37:50 2003
+++ Zope3/src/zope/testing/doctestunit.py Tue Jan 6 14:50:43 2004
@@ -226,7 +226,7 @@
])
return testsrc
-def debug(module, name):
+def debug(module, name, pm=False):
"""Debug a single doctest test doc string
Provide the module (or dotted name of the module) containing the
@@ -240,9 +240,17 @@
open(srcfilename, 'w').write(testsrc)
globs = {}
globs.update(module.__dict__)
+
try:
- # 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)
More information about the Zope3-Checkins
mailing list