[Python-checkins] r59173 - in python/trunk: Lib/doctest.py Lib/trace.py Misc/NEWS

skip.montanaro python-checkins at python.org
Sat Nov 24 15:30:48 CET 2007


Author: skip.montanaro
Date: Sat Nov 24 15:30:47 2007
New Revision: 59173

Modified:
   python/trunk/Lib/doctest.py
   python/trunk/Lib/trace.py
   python/trunk/Misc/NEWS
Log:
back in these go - thanks to Titus Brown for the fix

Modified: python/trunk/Lib/doctest.py
==============================================================================
--- python/trunk/Lib/doctest.py	(original)
+++ python/trunk/Lib/doctest.py	Sat Nov 24 15:30:47 2007
@@ -320,8 +320,21 @@
     """
     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

Modified: python/trunk/Lib/trace.py
==============================================================================
--- python/trunk/Lib/trace.py	(original)
+++ python/trunk/Lib/trace.py	Sat Nov 24 15:30:47 2007
@@ -286,6 +286,8 @@
             # 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]

Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS	(original)
+++ python/trunk/Misc/NEWS	Sat Nov 24 15:30:47 2007
@@ -290,6 +290,9 @@
 Library
 -------
 
+- Issue 1429818: patch for trace and doctest modules so they play nicely
+  together.
+
 - doctest made a bad assumption that a package's __loader__.get_data()
   method used universal newlines.
 


More information about the Python-checkins mailing list