add test_pdb_continue_with_recursive_debug
This commit is contained in:
		
							parent
							
								
									40718efacc
								
							
						
					
					
						commit
						ae067df941
					
				|  | @ -604,6 +604,57 @@ class TestPDB(object): | ||||||
|         child.expect("1 passed") |         child.expect("1 passed") | ||||||
|         self.flush(child) |         self.flush(child) | ||||||
| 
 | 
 | ||||||
|  |     @pytest.mark.parametrize("capture", (True, False)) | ||||||
|  |     def test_pdb_continue_with_recursive_debug(self, capture, testdir): | ||||||
|  |         """Full coverage for do_debug without capturing. | ||||||
|  | 
 | ||||||
|  |         This is very similar to test_pdb_interaction_continue_recursive, but | ||||||
|  |         simpler, and providing more coverage. | ||||||
|  |         """ | ||||||
|  |         p1 = testdir.makepyfile( | ||||||
|  |             """ | ||||||
|  |             def set_trace(): | ||||||
|  |                 __import__('pdb').set_trace() | ||||||
|  | 
 | ||||||
|  |             def test_1(): | ||||||
|  |                 set_trace() | ||||||
|  |         """ | ||||||
|  |         ) | ||||||
|  |         if capture: | ||||||
|  |             child = testdir.spawn_pytest("%s" % p1) | ||||||
|  |         else: | ||||||
|  |             child = testdir.spawn_pytest("-s %s" % p1) | ||||||
|  |         child.expect("Pdb") | ||||||
|  |         before = child.before.decode("utf8") | ||||||
|  |         if capture: | ||||||
|  |             assert ">>> PDB set_trace (IO-capturing turned off) >>>" in before | ||||||
|  |         else: | ||||||
|  |             assert ">>> PDB set_trace >>>" in before | ||||||
|  |         child.sendline("debug set_trace()") | ||||||
|  |         child.expect(r"\(Pdb.*") | ||||||
|  |         before = child.before.decode("utf8") | ||||||
|  |         assert "\r\nENTERING RECURSIVE DEBUGGER\r\n" in before | ||||||
|  |         child.sendline("c") | ||||||
|  |         child.expect(r"\(Pdb.*") | ||||||
|  | 
 | ||||||
|  |         # No continue message with recursive debugging. | ||||||
|  |         before = child.before.decode("utf8") | ||||||
|  |         assert ">>> PDB continue " not in before | ||||||
|  |         # No extra newline. | ||||||
|  |         assert before.startswith("c\r\n\r\n--Return--") | ||||||
|  | 
 | ||||||
|  |         child.sendline("c") | ||||||
|  |         child.expect("Pdb") | ||||||
|  |         before = child.before.decode("utf8") | ||||||
|  |         assert "\r\nLEAVING RECURSIVE DEBUGGER\r\n" in before | ||||||
|  |         child.sendline("c") | ||||||
|  |         rest = child.read().decode("utf8") | ||||||
|  |         if capture: | ||||||
|  |             assert "> PDB continue (IO-capturing resumed) >" in rest | ||||||
|  |         else: | ||||||
|  |             assert "> PDB continue >" in rest | ||||||
|  |         assert "1 passed in" in rest | ||||||
|  | 
 | ||||||
|     def test_pdb_used_outside_test(self, testdir): |     def test_pdb_used_outside_test(self, testdir): | ||||||
|         p1 = testdir.makepyfile( |         p1 = testdir.makepyfile( | ||||||
|             """ |             """ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue