diff options
author | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-07-22 16:27:31 +0100 |
---|---|---|
committer | Vinay Sajip <vinay_sajip@yahoo.co.uk> | 2016-07-22 16:27:31 +0100 |
commit | cccf6068fa6f997751701a32121924677efcba9c (patch) | |
tree | b303842df915336828f75e63798b13d26c534c9a /Lib/test | |
parent | d141531eb5924159c58fcce779f78d7d04265f54 (diff) | |
download | cpython-git-cccf6068fa6f997751701a32121924677efcba9c.tar.gz |
Closes #26559: Allow configuring flush-on-close behaviour of MemoryHandler.
Diffstat (limited to 'Lib/test')
-rw-r--r-- | Lib/test/test_logging.py | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 062df0f746..9e9a439eab 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -958,7 +958,7 @@ class MemoryHandlerTest(BaseTest): def setUp(self): BaseTest.setUp(self) self.mem_hdlr = logging.handlers.MemoryHandler(10, logging.WARNING, - self.root_hdlr) + self.root_hdlr) self.mem_logger = logging.getLogger('mem') self.mem_logger.propagate = 0 self.mem_logger.addHandler(self.mem_hdlr) @@ -995,6 +995,36 @@ class MemoryHandlerTest(BaseTest): self.mem_logger.debug(self.next_message()) self.assert_log_lines(lines) + def test_flush_on_close(self): + """ + Test that the flush-on-close configuration works as expected. + """ + self.mem_logger.debug(self.next_message()) + self.assert_log_lines([]) + self.mem_logger.info(self.next_message()) + self.assert_log_lines([]) + self.mem_logger.removeHandler(self.mem_hdlr) + # Default behaviour is to flush on close. Check that it happens. + self.mem_hdlr.close() + 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 + self.mem_logger.removeHandler(self.mem_hdlr) + self.mem_hdlr.close() + # assert that no new lines have been added + self.assert_log_lines(lines) # no change + class ExceptionFormatter(logging.Formatter): """A special exception formatter.""" |