diff options
author | Skip Montanaro <skip@pobox.com> | 2007-11-24 14:31:16 +0000 |
---|---|---|
committer | Skip Montanaro <skip@pobox.com> | 2007-11-24 14:31:16 +0000 |
commit | 664ad76a347cfa798b7229286706edd155c6aaa3 (patch) | |
tree | 1752478e5099aa03609abdc9b58478cd8a6f2181 | |
parent | 30f61cbb1331615af829aea69d2586e990488525 (diff) | |
download | cpython-git-664ad76a347cfa798b7229286706edd155c6aaa3.tar.gz |
back in these go - thanks to Titus Brown for the fix
-rw-r--r-- | Lib/doctest.py | 13 | ||||
-rw-r--r-- | Lib/trace.py | 2 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 18 insertions, 0 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py index d609c5def5..f50fce6411 100644 --- a/Lib/doctest.py +++ b/Lib/doctest.py @@ -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 diff --git a/Lib/trace.py b/Lib/trace.py index 364e3f7bc9..3f00605254 100644 --- a/Lib/trace.py +++ b/Lib/trace.py @@ -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] @@ -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 |