Skip to content

Commit 6fdfcec

Browse files
authored
bpo-41943: Fix bug where assertLogs doesn't correctly filter messages… (GH-22565)
… by level @vsajip , @pitrou Automerge-Triggered-By: GH:vsajip
1 parent aca67da commit 6fdfcec

File tree

3 files changed

+14
-0
lines changed

3 files changed

+14
-0
lines changed

Lib/unittest/_log.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ def __enter__(self):
4747
logger = self.logger = logging.getLogger(self.logger_name)
4848
formatter = logging.Formatter(self.LOGGING_FORMAT)
4949
handler = _CapturingHandler()
50+
handler.setLevel(self.level)
5051
handler.setFormatter(formatter)
5152
self.watcher = handler.watcher
5253
self.old_handlers = logger.handlers[:]

Lib/unittest/test/test_case.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1673,6 +1673,18 @@ def testAssertLogsFailureLevelTooHigh(self):
16731673
with self.assertLogs(level='WARNING'):
16741674
log_foo.info("1")
16751675

1676+
def testAssertLogsFailureLevelTooHigh_FilterInRootLogger(self):
1677+
# Failure due to level too high - message propagated to root
1678+
with self.assertNoStderr():
1679+
oldLevel = log_foo.level
1680+
log_foo.setLevel(logging.INFO)
1681+
try:
1682+
with self.assertRaises(self.failureException):
1683+
with self.assertLogs(level='WARNING'):
1684+
log_foo.info("1")
1685+
finally:
1686+
log_foo.setLevel(oldLevel)
1687+
16761688
def testAssertLogsFailureMismatchingLogger(self):
16771689
# Failure due to mismatching logger (and the logged message is
16781690
# passed through)
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix bug where TestCase.assertLogs doesn't correctly filter messages by level.

0 commit comments

Comments
 (0)