Do not print INTERNALERROR with --pdb

This gets printed by the terminal reporter already, and currently
results in the same error being displayed twice, e.g. when raising an
`Exception` manually from `pytest.debugging.pytest_exception_interact`.
This commit is contained in:
Daniel Hahler 2018-10-13 16:33:53 +02:00
parent d3d8d53e41
commit 448830e656
3 changed files with 6 additions and 4 deletions

View File

@ -0,0 +1 @@
Fix duplicate printing of internal errors when using ``--pdb``.

View File

@ -109,9 +109,6 @@ class PdbInvoke(object):
_enter_pdb(node, call.excinfo, report)
def pytest_internalerror(self, excrepr, excinfo):
for line in str(excrepr).split("\n"):
sys.stderr.write("INTERNALERROR> %s\n" % line)
sys.stderr.flush()
tb = _postmortem_traceback(excinfo)
post_mortem(tb)

View File

@ -334,8 +334,12 @@ class TestPDB(object):
)
p1 = testdir.makepyfile("def test_func(): pass")
child = testdir.spawn_pytest("--pdb %s" % p1)
# child.expect(".*import pytest.*")
child.expect("Pdb")
# INTERNALERROR is only displayed once via terminal reporter.
assert len([x for x in child.before.decode().splitlines()
if x.startswith("INTERNALERROR> Traceback")]) == 1
child.sendeof()
self.flush(child)