back in these go - thanks to Titus Brown for the fix

This commit is contained in:
Skip Montanaro 2007-11-24 14:31:16 +00:00
parent 30f61cbb13
commit 664ad76a34
3 changed files with 18 additions and 0 deletions

View File

@ -320,8 +320,21 @@ class _OutputRedirectingPdb(pdb.Pdb):
"""
def __init__(self, out):
self.__out = out
self.__debugger_used = False
pdb.Pdb.__init__(self, stdout=out)
def set_trace(self, frame=None):
self.__debugger_used = True
if frame is None:
frame = sys._getframe().f_back
pdb.Pdb.set_trace(self, frame)
def set_continue(self):
# Calling set_continue unconditionally would break unit test
# coverage reporting, as Bdb.set_continue calls sys.settrace(None).
if self.__debugger_used:
pdb.Pdb.set_continue(self)
def trace_dispatch(self, *args):
# Redirect stdout to the given stream.
save_stdout = sys.stdout

View File

@ -286,6 +286,8 @@ class CoverageResults:
# skip some "files" we don't care about...
if filename == "<string>":
continue
if filename.startswith("<doctest "):
continue
if filename.endswith((".pyc", ".pyo")):
filename = filename[:-1]

View File

@ -41,6 +41,9 @@ Core and builtins
Library
-------
- Issue 1429818: patch for trace and doctest modules so they play nicely
together.
- doctest mis-used __loader__.get_data(), assuming universal newlines was used.
- Issue #1705170: contextlib.contextmanager was still swallowing