mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 23:21:29 +00:00 
			
		
		
		
	Make trace and doctest play nice together (issue 1429818). Will backport.
This commit is contained in:
		
							parent
							
								
									f7b462f696
								
							
						
					
					
						commit
						6d7914bf22
					
				
					 2 changed files with 13 additions and 0 deletions
				
			
		| 
						 | 
					@ -320,8 +320,19 @@ class _OutputRedirectingPdb(pdb.Pdb):
 | 
				
			||||||
    """
 | 
					    """
 | 
				
			||||||
    def __init__(self, out):
 | 
					    def __init__(self, out):
 | 
				
			||||||
        self.__out = out
 | 
					        self.__out = out
 | 
				
			||||||
 | 
					        self.__debugger_used = False
 | 
				
			||||||
        pdb.Pdb.__init__(self, stdout=out)
 | 
					        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):
 | 
					    def trace_dispatch(self, *args):
 | 
				
			||||||
        # Redirect stdout to the given stream.
 | 
					        # Redirect stdout to the given stream.
 | 
				
			||||||
        save_stdout = sys.stdout
 | 
					        save_stdout = sys.stdout
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -286,6 +286,8 @@ def write_results(self, show_missing=True, summary=False, coverdir=None):
 | 
				
			||||||
            # skip some "files" we don't care about...
 | 
					            # skip some "files" we don't care about...
 | 
				
			||||||
            if filename == "<string>":
 | 
					            if filename == "<string>":
 | 
				
			||||||
                continue
 | 
					                continue
 | 
				
			||||||
 | 
					            if filename.startswith("<doctest "):
 | 
				
			||||||
 | 
					                continue
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if filename.endswith((".pyc", ".pyo")):
 | 
					            if filename.endswith((".pyc", ".pyo")):
 | 
				
			||||||
                filename = filename[:-1]
 | 
					                filename = filename[:-1]
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue