[Python-checkins] python/dist/src/Lib doctest.py, 1.36.2.23,
1.36.2.24
dcjim at users.sourceforge.net
dcjim at users.sourceforge.net
Fri Aug 6 20:48:46 CEST 2004
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv24744
Modified Files:
Tag: tim-doctest-branch
doctest.py
Log Message:
The debug runer was always clearing the test globs. We need to keep
them around if there is an error.
Index: doctest.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/doctest.py,v
retrieving revision 1.36.2.23
retrieving revision 1.36.2.24
diff -C2 -d -r1.36.2.23 -r1.36.2.24
*** doctest.py 6 Aug 2004 14:32:50 -0000 1.36.2.23
--- doctest.py 6 Aug 2004 18:48:43 -0000 1.36.2.24
***************
*** 1586,1589 ****
--- 1586,1594 ----
self.got = got
+ def __str__(self):
+ return str(self.test)
+
+
+
class DebugRunner(DocTestRunner):
r"""Run doc tests but raise an exception as soon as there is a failure.
***************
*** 1626,1631 ****
--- 1631,1676 ----
>>> failure.got
'1\n'
+
+ If a failure or error occurs, the globals are left intact:
+
+ >>> del test.globs['__builtins__']
+ >>> test.globs
+ {'x': 1}
+
+ >>> test = DocTest('''
+ ... >>> x = 2
+ ... >>> raise KeyError
+ ... ''', {}, 'foo', 'foo.py', 0)
+
+ >>> runner.run(test)
+ Traceback (most recent call last):
+ ...
+ KeyError
+
+ >>> del test.globs['__builtins__']
+ >>> test.globs
+ {'x': 2}
+
+ But the globals are cleared if there is no error:
+
+ >>> test = DocTest('''
+ ... >>> x = 2
+ ... ''', {}, 'foo', 'foo.py', 0)
+
+ >>> runner.run(test)
+ (0, 1)
+
+ >>> test.globs
+ {}
+
+
"""
+ def run(self, test, compileflags=None, out=None, clear_globs=True):
+ r = DocTestRunner.run(self, test, compileflags, out, False)
+ if clear_globs:
+ test.globs.clear()
+ return r
+
def report_unexpected_exception(self, out, test, example, exc_info):
raise exc_info[0], exc_info[1], exc_info[2]
More information about the Python-checkins
mailing list