diff --git a/Lib/logging/handlers.py b/Lib/logging/handlers.py index 57b20576e72..56169201163 100644 --- a/Lib/logging/handlers.py +++ b/Lib/logging/handlers.py @@ -26,6 +26,8 @@ To use, simply 'import logging.handlers' and log away! import logging, socket, os, pickle, struct, time, re from stat import ST_DEV, ST_INO, ST_MTIME +import queue +import threading try: import codecs diff --git a/Lib/test/test_logging.py b/Lib/test/test_logging.py index 88f0ebc42ee..b2e3327fd56 100644 --- a/Lib/test/test_logging.py +++ b/Lib/test/test_logging.py @@ -41,6 +41,7 @@ import struct import sys import tempfile from test.support import captured_stdout, run_with_locale, run_unittest, patch +from test.support import TestHandler, Matcher import textwrap import unittest import warnings @@ -2108,6 +2109,21 @@ class QueueHandlerTest(BaseTest): self.assertEqual(data.name, self.que_logger.name) self.assertEqual((data.msg, data.args), (msg, None)) + def test_queue_listener(self): + handler = TestHandler(Matcher()) + listener = logging.handlers.QueueListener(self.queue, handler) + listener.start() + try: + self.que_logger.warning(self.next_message()) + self.que_logger.error(self.next_message()) + self.que_logger.critical(self.next_message()) + finally: + listener.stop() + self.assertTrue(handler.matches(levelno=logging.WARNING, message='1')) + self.assertTrue(handler.matches(levelno=logging.ERROR, message='2')) + self.assertTrue(handler.matches(levelno=logging.CRITICAL, message='3')) + + class FormatterTest(unittest.TestCase): def setUp(self): self.common = { diff --git a/Misc/NEWS b/Misc/NEWS index 6d07bdef660..8f7d5bf92b7 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -110,6 +110,8 @@ Core and Builtins Library ------- +- Issue #11852: Add missing imports and update tests. + - Issue #11467: Fix urlparse behavior when handling urls which contains scheme specific part only digits. Patch by Santoso Wijaya.