Make trace and doctest play nice together (issue 1429818). Backported from
head.
This commit is contained in:
parent
a95fdb4f9c
commit
ab4fce4d7c
|
@ -320,8 +320,19 @@ class _OutputRedirectingPdb(pdb.Pdb):
|
||||||
"""
|
"""
|
||||||
def __init__(self, out):
|
def __init__(self, out):
|
||||||
self.__out = out
|
self.__out = out
|
||||||
|
self.__debugger_used = False
|
||||||
pdb.Pdb.__init__(self, stdout=out)
|
pdb.Pdb.__init__(self, stdout=out)
|
||||||
|
|
||||||
|
def set_trace(self):
|
||||||
|
self.__debugger_used = True
|
||||||
|
pdb.Pdb.set_trace(self)
|
||||||
|
|
||||||
|
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):
|
def trace_dispatch(self, *args):
|
||||||
# Redirect stdout to the given stream.
|
# Redirect stdout to the given stream.
|
||||||
save_stdout = sys.stdout
|
save_stdout = sys.stdout
|
||||||
|
|
|
@ -286,6 +286,8 @@ class CoverageResults:
|
||||||
# skip some "files" we don't care about...
|
# skip some "files" we don't care about...
|
||||||
if filename == "<string>":
|
if filename == "<string>":
|
||||||
continue
|
continue
|
||||||
|
if filename.startswith("<doctest "):
|
||||||
|
continue
|
||||||
|
|
||||||
if filename.endswith((".pyc", ".pyo")):
|
if filename.endswith((".pyc", ".pyo")):
|
||||||
filename = filename[:-1]
|
filename = filename[:-1]
|
||||||
|
|
Loading…
Reference in New Issue