add test_pdb_continue_with_recursive_debug
This commit is contained in:
parent
40718efacc
commit
ae067df941
|
@ -604,6 +604,57 @@ class TestPDB(object):
|
||||||
child.expect("1 passed")
|
child.expect("1 passed")
|
||||||
self.flush(child)
|
self.flush(child)
|
||||||
|
|
||||||
|
@pytest.mark.parametrize("capture", (True, False))
|
||||||
|
def test_pdb_continue_with_recursive_debug(self, capture, testdir):
|
||||||
|
"""Full coverage for do_debug without capturing.
|
||||||
|
|
||||||
|
This is very similar to test_pdb_interaction_continue_recursive, but
|
||||||
|
simpler, and providing more coverage.
|
||||||
|
"""
|
||||||
|
p1 = testdir.makepyfile(
|
||||||
|
"""
|
||||||
|
def set_trace():
|
||||||
|
__import__('pdb').set_trace()
|
||||||
|
|
||||||
|
def test_1():
|
||||||
|
set_trace()
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
if capture:
|
||||||
|
child = testdir.spawn_pytest("%s" % p1)
|
||||||
|
else:
|
||||||
|
child = testdir.spawn_pytest("-s %s" % p1)
|
||||||
|
child.expect("Pdb")
|
||||||
|
before = child.before.decode("utf8")
|
||||||
|
if capture:
|
||||||
|
assert ">>> PDB set_trace (IO-capturing turned off) >>>" in before
|
||||||
|
else:
|
||||||
|
assert ">>> PDB set_trace >>>" in before
|
||||||
|
child.sendline("debug set_trace()")
|
||||||
|
child.expect(r"\(Pdb.*")
|
||||||
|
before = child.before.decode("utf8")
|
||||||
|
assert "\r\nENTERING RECURSIVE DEBUGGER\r\n" in before
|
||||||
|
child.sendline("c")
|
||||||
|
child.expect(r"\(Pdb.*")
|
||||||
|
|
||||||
|
# No continue message with recursive debugging.
|
||||||
|
before = child.before.decode("utf8")
|
||||||
|
assert ">>> PDB continue " not in before
|
||||||
|
# No extra newline.
|
||||||
|
assert before.startswith("c\r\n\r\n--Return--")
|
||||||
|
|
||||||
|
child.sendline("c")
|
||||||
|
child.expect("Pdb")
|
||||||
|
before = child.before.decode("utf8")
|
||||||
|
assert "\r\nLEAVING RECURSIVE DEBUGGER\r\n" in before
|
||||||
|
child.sendline("c")
|
||||||
|
rest = child.read().decode("utf8")
|
||||||
|
if capture:
|
||||||
|
assert "> PDB continue (IO-capturing resumed) >" in rest
|
||||||
|
else:
|
||||||
|
assert "> PDB continue >" in rest
|
||||||
|
assert "1 passed in" in rest
|
||||||
|
|
||||||
def test_pdb_used_outside_test(self, testdir):
|
def test_pdb_used_outside_test(self, testdir):
|
||||||
p1 = testdir.makepyfile(
|
p1 = testdir.makepyfile(
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue