Merged in wosc/pytest (pull request #204)
Introduce pytest_enter_pdb hook
This commit is contained in:
		
						commit
						be503f1c43
					
				|  | @ -19,6 +19,8 @@ NEXT | |||
|   CWD outside a test package pytest would get fixture discovery wrong. | ||||
|   Thanks to Wolfgang Schnerring for figuring out a reproducable example. | ||||
| 
 | ||||
| - Introduce pytest_enter_pdb hook (needed e.g. by pytest_timeout to cancel the | ||||
|   timeout when interactively entering pdb). | ||||
| 
 | ||||
| 2.6.2 | ||||
| ----------- | ||||
|  |  | |||
|  | @ -262,3 +262,5 @@ def pytest_exception_interact(node, call, report): | |||
|     that is not an internal exception like "skip.Exception". | ||||
|     """ | ||||
| 
 | ||||
| def pytest_enter_pdb(): | ||||
|     """ called upon pdb.set_trace()""" | ||||
|  |  | |||
|  | @ -42,6 +42,7 @@ class pytestPDB: | |||
|             tw = py.io.TerminalWriter() | ||||
|             tw.line() | ||||
|             tw.sep(">", "PDB set_trace (IO-capturing turned off)") | ||||
|             self._pluginmanager.hook.pytest_enter_pdb() | ||||
|         pdb.Pdb().set_trace(frame) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -267,3 +267,21 @@ class TestPDB: | |||
|             "*NameError*xxx*", | ||||
|             "*1 error*", | ||||
|         ]) | ||||
| 
 | ||||
|     def test_enter_pdb_hook_is_called(self, testdir): | ||||
|         testdir.makeconftest(""" | ||||
|             def pytest_enter_pdb(): | ||||
|                 print 'enter_pdb_hook' | ||||
|         """) | ||||
|         p1 = testdir.makepyfile(""" | ||||
|             import pytest | ||||
| 
 | ||||
|             def test_foo(): | ||||
|                 pytest.set_trace() | ||||
|         """) | ||||
|         child = testdir.spawn_pytest(str(p1)) | ||||
|         child.expect("enter_pdb_hook") | ||||
|         child.send('c\n') | ||||
|         child.sendeof() | ||||
|         if child.isalive(): | ||||
|             child.wait() | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue