fix the annoying interaction between "pdb.set_trace()" and --pdb. The problem
is that pdb raises BdbQuit on exit, which is then caught by --pdb, showing an unwanted pdb prompt. Fix it by making --pdb to ignore BdbQuit --HG-- branch : trunk
This commit is contained in:
parent
fe54762b93
commit
94c2fd4033
|
@ -2,7 +2,7 @@
|
|||
interactive debugging with the Python Debugger.
|
||||
"""
|
||||
import py
|
||||
import pdb, sys, linecache
|
||||
import bdb, pdb, sys, linecache
|
||||
|
||||
def pytest_addoption(parser):
|
||||
group = parser.getgroup("general")
|
||||
|
@ -20,7 +20,8 @@ class PdbInvoke:
|
|||
session.config.option.tbstyle = "no"
|
||||
def pytest_runtest_makereport(self, item, call, __multicall__):
|
||||
if not call.excinfo or \
|
||||
call.excinfo.errisinstance(py.test.skip.Exception):
|
||||
call.excinfo.errisinstance(py.test.skip.Exception) or \
|
||||
call.excinfo.errisinstance(bdb.BdbQuit):
|
||||
return
|
||||
rep = __multicall__.execute()
|
||||
if "xfail" in rep.keywords:
|
||||
|
|
|
@ -39,6 +39,15 @@ class TestPDB:
|
|||
assert rep.skipped
|
||||
assert len(pdblist) == 0
|
||||
|
||||
def test_pdb_on_BdbQuit(self, testdir, pdblist):
|
||||
rep = testdir.inline_runsource1('--pdb', """
|
||||
import py, bdb
|
||||
def test_func():
|
||||
raise bdb.BdbQuit
|
||||
""")
|
||||
assert rep.failed
|
||||
assert len(pdblist) == 0
|
||||
|
||||
def test_pdb_interaction(self, testdir):
|
||||
p1 = testdir.makepyfile("""
|
||||
def test_1():
|
||||
|
|
Loading…
Reference in New Issue