diff options
| author | Skip Montanaro <skip@pobox.com> | 2007-11-23 17:09:34 (GMT) |
|---|---|---|
| committer | Skip Montanaro <skip@pobox.com> | 2007-11-23 17:09:34 (GMT) |
| commit | ab4fce4d7c2565c3557f59e213f0dcbdceb4e88d (patch) | |
| tree | 10d17162a7677cb77a0626c772cb42ee1096eb0e | |
| parent | a95fdb4f9cd1a4eda4100b1b3b4afc5b275607a1 (diff) | |
| download | cpython-ab4fce4d7c2565c3557f59e213f0dcbdceb4e88d.zip cpython-ab4fce4d7c2565c3557f59e213f0dcbdceb4e88d.tar.gz cpython-ab4fce4d7c2565c3557f59e213f0dcbdceb4e88d.tar.bz2 | |
Make trace and doctest play nice together (issue 1429818). Backported from
head.
| -rw-r--r-- | Lib/doctest.py | 11 | ||||
| -rw-r--r-- | Lib/trace.py | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/Lib/doctest.py b/Lib/doctest.py index d609c5d..1b39a5e 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 diff --git a/Lib/trace.py b/Lib/trace.py index 364e3f7..3f00605 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] |
