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. |   CWD outside a test package pytest would get fixture discovery wrong. | ||||||
|   Thanks to Wolfgang Schnerring for figuring out a reproducable example. |   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 | 2.6.2 | ||||||
| ----------- | ----------- | ||||||
|  |  | ||||||
|  | @ -262,3 +262,5 @@ def pytest_exception_interact(node, call, report): | ||||||
|     that is not an internal exception like "skip.Exception". |     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 = py.io.TerminalWriter() | ||||||
|             tw.line() |             tw.line() | ||||||
|             tw.sep(">", "PDB set_trace (IO-capturing turned off)") |             tw.sep(">", "PDB set_trace (IO-capturing turned off)") | ||||||
|  |             self._pluginmanager.hook.pytest_enter_pdb() | ||||||
|         pdb.Pdb().set_trace(frame) |         pdb.Pdb().set_trace(frame) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -267,3 +267,21 @@ class TestPDB: | ||||||
|             "*NameError*xxx*", |             "*NameError*xxx*", | ||||||
|             "*1 error*", |             "*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