summaryrefslogtreecommitdiffstats
path: root/Lib/doctest.py
diff options
context:
space:
mode:
authorSkip Montanaro <skip@pobox.com>2007-11-23 17:08:35 (GMT)
committerSkip Montanaro <skip@pobox.com>2007-11-23 17:08:35 (GMT)
commit6d7914bf22ff657c1047fde8cf85861f16c57d8c (patch)
treec0fc709cc5d561625d4e31935d293ba763a0d1b6 /Lib/doctest.py
parentf7b462f696dfb6ceabe9016611492a85b5109ac3 (diff)
downloadcpython-6d7914bf22ff657c1047fde8cf85861f16c57d8c.zip
cpython-6d7914bf22ff657c1047fde8cf85861f16c57d8c.tar.gz
cpython-6d7914bf22ff657c1047fde8cf85861f16c57d8c.tar.bz2
Make trace and doctest play nice together (issue 1429818). Will backport.
Diffstat (limited to 'Lib/doctest.py')
-rw-r--r--Lib/doctest.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py
index e874a26..3c977e1 100644
--- a/Lib/doctest.py
+++ b/Lib/doctest.py
@@ -320,8 +320,19 @@ 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):
+ 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):
# Redirect stdout to the given stream.
save_stdout = sys.stdout