Skip to content

Commit

Permalink
Merge pull request #3998 from blueyed/logging-del
Browse files Browse the repository at this point in the history
logging: del item.catch_log_handler only in teardown
  • Loading branch information
nicoddemus authored Sep 19, 2018
2 parents 27772f6 + d1fa8ae commit 7aff817
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 1 deletion.
1 change: 1 addition & 0 deletions changelog/3998.bugfix.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Fix issue that prevented some caplog properties (for example ``record_tuples``) from being available when entering the debugger with ``--pdb``.
2 changes: 1 addition & 1 deletion src/_pytest/logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -445,8 +445,8 @@ def _runtest_for(self, item, when):
try:
yield # run test
finally:
del item.catch_log_handler
if when == "teardown":
del item.catch_log_handler
del item.catch_log_handlers

if self.print_logs:
Expand Down
18 changes: 18 additions & 0 deletions testing/test_pdb.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,6 +397,24 @@ def test_1(capsys):
child.read()
self.flush(child)

def test_pdb_with_caplog_on_pdb_invocation(self, testdir):
p1 = testdir.makepyfile(
"""
def test_1(capsys, caplog):
import logging
logging.getLogger(__name__).warning("some_warning")
assert 0
"""
)
child = testdir.spawn_pytest("--pdb %s" % str(p1))
child.send("caplog.record_tuples\n")
child.expect_exact(
"[('test_pdb_with_caplog_on_pdb_invocation', 30, 'some_warning')]"
)
child.sendeof()
child.read()
self.flush(child)

def test_set_trace_capturing_afterwards(self, testdir):
p1 = testdir.makepyfile(
"""
Expand Down

0 comments on commit 7aff817

Please sign in to comment.