summaryrefslogtreecommitdiff
path: root/src/_pytest/logging.py
diff options
context:
space:
mode:
authorRan Benita <ran@unusedvar.com>2020-07-29 14:46:11 +0300
committerRan Benita <ran@unusedvar.com>2020-07-29 14:59:29 +0300
commit0e0275d8d999863921121d08baab8231f8fa27d8 (patch)
tree189a7043e6a50b5f8886765ebdd8c1741723a4e1 /src/_pytest/logging.py
parent422685d0bdc110547535036c1ff398b5e1c44145 (diff)
downloadpytest-0e0275d8d999863921121d08baab8231f8fa27d8.tar.gz
logging: fix capture handler level not reset on teardown after caplog.set_level()
This probably regressed in fcbaab8.
Diffstat (limited to 'src/_pytest/logging.py')
-rw-r--r--src/_pytest/logging.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/_pytest/logging.py b/src/_pytest/logging.py
index 11031f2f2..0ee9457ea 100644
--- a/src/_pytest/logging.py
+++ b/src/_pytest/logging.py
@@ -345,6 +345,7 @@ class LogCaptureFixture:
"""Creates a new funcarg."""
self._item = item
# dict of log name -> log level
+ self._initial_handler_level = None # type: Optional[int]
self._initial_logger_levels = {} # type: Dict[Optional[str], int]
def _finalize(self) -> None:
@@ -353,6 +354,8 @@ class LogCaptureFixture:
This restores the log levels changed by :meth:`set_level`.
"""
# restore log levels
+ if self._initial_handler_level is not None:
+ self.handler.setLevel(self._initial_handler_level)
for logger_name, level in self._initial_logger_levels.items():
logger = logging.getLogger(logger_name)
logger.setLevel(level)
@@ -434,6 +437,7 @@ class LogCaptureFixture:
# save the original log-level to restore it during teardown
self._initial_logger_levels.setdefault(logger, logger_obj.level)
logger_obj.setLevel(level)
+ self._initial_handler_level = self.handler.level
self.handler.setLevel(level)
@contextmanager