make "import pdb ; pdb.set_trace()" work natively wrt capturing (no "-s" needed
anymore), turning ``pytest.set_trace()`` into a mere shortcut.
This commit is contained in:
parent
109e2f215f
commit
c478027805
|
@ -1,6 +1,9 @@
|
||||||
Changes between 2.3.5 and 2.4.DEV
|
Changes between 2.3.5 and 2.4.DEV
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
|
||||||
|
- make "import pdb ; pdb.set_trace()" work natively wrt capturing (no "-s" needed
|
||||||
|
anymore), making ``pytest.set_trace()`` a mere shortcut.
|
||||||
|
|
||||||
- fix issue181: --pdb now also works on collect errors (and
|
- fix issue181: --pdb now also works on collect errors (and
|
||||||
on internal errors) . This was implemented by a slight internal
|
on internal errors) . This was implemented by a slight internal
|
||||||
refactoring and the introduction of a new hook
|
refactoring and the introduction of a new hook
|
||||||
|
|
|
@ -16,6 +16,12 @@ def pytest_configure(config):
|
||||||
if config.getvalue("usepdb"):
|
if config.getvalue("usepdb"):
|
||||||
config.pluginmanager.register(PdbInvoke(), 'pdbinvoke')
|
config.pluginmanager.register(PdbInvoke(), 'pdbinvoke')
|
||||||
|
|
||||||
|
old_trace = py.std.pdb.set_trace
|
||||||
|
def fin():
|
||||||
|
py.std.pdb.set_trace = old_trace
|
||||||
|
py.std.pdb.set_trace = pytest.set_trace
|
||||||
|
config._cleanup.append(fin)
|
||||||
|
|
||||||
class pytestPDB:
|
class pytestPDB:
|
||||||
""" Pseudo PDB that defers to the real pdb. """
|
""" Pseudo PDB that defers to the real pdb. """
|
||||||
item = None
|
item = None
|
||||||
|
|
|
@ -134,6 +134,22 @@ class TestPDB:
|
||||||
if child.isalive():
|
if child.isalive():
|
||||||
child.wait()
|
child.wait()
|
||||||
|
|
||||||
|
def test_pdb_set_trace_interception(self, testdir):
|
||||||
|
p1 = testdir.makepyfile("""
|
||||||
|
import pdb
|
||||||
|
def test_1():
|
||||||
|
pdb.set_trace()
|
||||||
|
""")
|
||||||
|
child = testdir.spawn_pytest(str(p1))
|
||||||
|
child.expect("test_1")
|
||||||
|
child.expect("(Pdb)")
|
||||||
|
child.sendeof()
|
||||||
|
rest = child.read()
|
||||||
|
assert "1 failed" in rest
|
||||||
|
assert "reading from stdin while output" not in rest
|
||||||
|
if child.isalive():
|
||||||
|
child.wait()
|
||||||
|
|
||||||
def test_pdb_and_capsys(self, testdir):
|
def test_pdb_and_capsys(self, testdir):
|
||||||
p1 = testdir.makepyfile("""
|
p1 = testdir.makepyfile("""
|
||||||
import pytest
|
import pytest
|
||||||
|
|
Loading…
Reference in New Issue