diff options
| author | David Bonner <dbonner@gmail.com> | 2022-08-10 17:08:55 (GMT) |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-08-10 17:08:55 (GMT) |
| commit | 37c0f9ccc06750a7e22f5c176df39373f7aca526 (patch) | |
| tree | 8d86775d55fb448b8e12f608430a50bb879a0b57 /Lib/test/test_logging.py | |
| parent | 71c3d649b5a0324c6eb01f9ad025c1e102b82bba (diff) | |
| download | cpython-37c0f9ccc06750a7e22f5c176df39373f7aca526.zip cpython-37c0f9ccc06750a7e22f5c176df39373f7aca526.tar.gz cpython-37c0f9ccc06750a7e22f5c176df39373f7aca526.tar.bz2 | |
gh-95804: Respect MemoryHandler.flushOnClose in logging shutdown. (GH-95857)
Diffstat (limited to 'Lib/test/test_logging.py')
| -rw-r--r-- | Lib/test/test_logging.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index a505e80..99ea2f6 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -1225,6 +1225,35 @@ class MemoryHandlerTest(BaseTest): # assert that no new lines have been added self.assert_log_lines(lines) # no change + def test_shutdown_flush_on_close(self): + """ + Test that the flush-on-close configuration is respected by the + shutdown method. + """ + self.mem_logger.debug(self.next_message()) + self.assert_log_lines([]) + self.mem_logger.info(self.next_message()) + self.assert_log_lines([]) + # Default behaviour is to flush on close. Check that it happens. + logging.shutdown(handlerList=[logging.weakref.ref(self.mem_hdlr)]) + lines = [ + ('DEBUG', '1'), + ('INFO', '2'), + ] + self.assert_log_lines(lines) + # Now configure for flushing not to be done on close. + self.mem_hdlr = logging.handlers.MemoryHandler(10, logging.WARNING, + self.root_hdlr, + False) + self.mem_logger.addHandler(self.mem_hdlr) + self.mem_logger.debug(self.next_message()) + self.assert_log_lines(lines) # no change + self.mem_logger.info(self.next_message()) + self.assert_log_lines(lines) # no change + # assert that no new lines have been added after shutdown + logging.shutdown(handlerList=[logging.weakref.ref(self.mem_hdlr)]) + self.assert_log_lines(lines) # no change + @threading_helper.requires_working_threading() def test_race_between_set_target_and_flush(self): class MockRaceConditionHandler: |
