Merged in wosc/pytest (pull request #204)

Introduce pytest_enter_pdb hook
This commit is contained in:
holger krekel 2014-09-23 14:04:47 +02:00
commit be503f1c43
4 changed files with 23 additions and 0 deletions

View File

@ -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
-----------

View File

@ -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()"""

View File

@ -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)

View File

@ -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()