self.assertEqual(formatted_msg, log_record.msg)
self.assertEqual(formatted_msg, log_record.message)
- @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'),
- 'logging.handlers.QueueListener required for this test')
def test_queue_listener(self):
handler = TestHandler(support.Matcher())
listener = logging.handlers.QueueListener(self.queue, handler)
self.assertTrue(handler.matches(levelno=logging.CRITICAL, message='6'))
handler.close()
- @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'),
- 'logging.handlers.QueueListener required for this test')
+ # doesn't hurt to call stop() more than once.
+ listener.stop()
+ self.assertIsNone(listener._thread)
+
+ def test_queue_listener_multi_start(self):
+ handler = TestHandler(support.Matcher())
+ listener = logging.handlers.QueueListener(self.queue, handler)
+ listener.start()
+ self.assertRaises(RuntimeError, listener.start)
+ listener.stop()
+ self.assertIsNone(listener._thread)
+
def test_queue_listener_with_StreamHandler(self):
# Test that traceback and stack-info only appends once (bpo-34334, bpo-46755).
listener = logging.handlers.QueueListener(self.queue, self.root_hdlr)
self.assertEqual(self.stream.getvalue().strip().count('Traceback'), 1)
self.assertEqual(self.stream.getvalue().strip().count('Stack'), 1)
- @unittest.skipUnless(hasattr(logging.handlers, 'QueueListener'),
- 'logging.handlers.QueueListener required for this test')
def test_queue_listener_with_multiple_handlers(self):
# Test that queue handler format doesn't affect other handler formats (bpo-35726).
self.que_hdlr.setFormatter(self.root_formatter)