From d38cb0b2535efa7b210132dd6c01d4ec5d1d9d4d Mon Sep 17 00:00:00 2001 From: Jacob Kaplan-Moss Date: Sun, 2 Dec 2007 21:03:53 +0000 Subject: [PATCH] Fixed #6024: Django's doctest no longer clashes with coverage.py. Thanks to Ned Batchelder for the original fix, and Todd O'Brian for his update to make it work with Django. git-svn-id: http://code.djangoproject.com/svn/django/trunk@6851 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/test/_doctest.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/django/test/_doctest.py b/django/test/_doctest.py index 3589e162258..d1308b855ef 100644 --- a/django/test/_doctest.py +++ b/django/test/_doctest.py @@ -354,8 +354,19 @@ class _OutputRedirectingPdb(pdb.Pdb): """ def __init__(self, out): self.__out = out + self.__debugger_used = False pdb.Pdb.__init__(self) + 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