]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
bpo-41943: Fix bug where assertLogs doesn't correctly filter messages… (GH-22565)
authorIrit Katriel <iritkatriel@yahoo.com>
Mon, 2 Nov 2020 19:25:29 +0000 (19:25 +0000)
committerGitHub <noreply@github.com>
Mon, 2 Nov 2020 19:25:29 +0000 (11:25 -0800)
… by level

@vsajip , @pitrou

Automerge-Triggered-By: GH:vsajip
Lib/unittest/_log.py
Lib/unittest/test/test_case.py
Misc/NEWS.d/next/Library/2020-10-07-18-36-03.bpo-41943.Pt55fT.rst [new file with mode: 0644]

index 961c448a7fb356474f731a4a67a5c694553fb397..94868e5bb95eb35fb17c9bea103f04c7d0fd5433 100644 (file)
@@ -47,6 +47,7 @@ class _AssertLogsContext(_BaseTestCaseContext):
             logger = self.logger = logging.getLogger(self.logger_name)
         formatter = logging.Formatter(self.LOGGING_FORMAT)
         handler = _CapturingHandler()
+        handler.setLevel(self.level)
         handler.setFormatter(formatter)
         self.watcher = handler.watcher
         self.old_handlers = logger.handlers[:]
index 0e416967a3086152283c9972cb95a42f88ef5a08..b8aca92a8ebe9f74304cea2bb277a76fd11b4894 100644 (file)
@@ -1673,6 +1673,18 @@ test case
                 with self.assertLogs(level='WARNING'):
                     log_foo.info("1")
 
+    def testAssertLogsFailureLevelTooHigh_FilterInRootLogger(self):
+        # Failure due to level too high - message propagated to root
+        with self.assertNoStderr():
+            oldLevel = log_foo.level
+            log_foo.setLevel(logging.INFO)
+            try:
+                with self.assertRaises(self.failureException):
+                    with self.assertLogs(level='WARNING'):
+                        log_foo.info("1")
+            finally:
+                log_foo.setLevel(oldLevel)
+
     def testAssertLogsFailureMismatchingLogger(self):
         # Failure due to mismatching logger (and the logged message is
         # passed through)
diff --git a/Misc/NEWS.d/next/Library/2020-10-07-18-36-03.bpo-41943.Pt55fT.rst b/Misc/NEWS.d/next/Library/2020-10-07-18-36-03.bpo-41943.Pt55fT.rst
new file mode 100644 (file)
index 0000000..3a7874d
--- /dev/null
@@ -0,0 +1 @@
+Fix bug where TestCase.assertLogs doesn't correctly filter messages by level.
\ No newline at end of file