def test_removehandler_removes_handler_if_handler_in_handlers(self): logger = Logger() handler = Mock() logger.handlers = [handler] logger.remove_handler(handler) self.assertEqual(logger.handlers, [])
async def test_shutdown_ignores_erros(self): logger = Logger() logger.handlers = [ Mock(flush=CoroutineMock(side_effect=ValueError)), Mock(flush=CoroutineMock()), ] await logger.shutdown() logger.handlers[0].close.assert_not_called() logger.handlers[1].close.assert_called_once()
async def test_shutdown_closes_all_handlers(self): logger = Logger() logger.handlers = [ Mock(flush=CoroutineMock()), Mock(flush=CoroutineMock()) ] await logger.shutdown() for handler in logger.handlers: handler.flush.assert_awaited_once() handler.close.assert_called_once()
async def test_shutdown_doest_not_closes_handlers_twice(self): handlers = [Mock(flush=CoroutineMock()), Mock(flush=CoroutineMock())] logger = Logger() logger.handlers = handlers await asyncio.gather(logger.shutdown(), logger.shutdown(), logger.shutdown()) self.assertCountEqual(handlers, logger.handlers) for handler in logger.handlers: handler.flush.assert_awaited_once() handler.close.assert_called_once()
async def test_shutdown_closes_all_handlers_if_initialized(self): handlers = [ Mock(spec=AsyncStreamHandler), Mock(spec=AsyncStreamHandler), ] logger = Logger() logger.handlers = handlers await logger.shutdown() self.assertCountEqual(handlers, logger.handlers) for handler in logger.handlers: handler.flush.assert_awaited_once() handler.close.assert_awaited_once()
async def test_shutdown_doest_not_closes_handlers_if_not_initialized(self): initialized_handler = Mock(spec=AsyncStreamHandler) not_initialized_handler = Mock(spec=AsyncStreamHandler, initialized=False) logger = Logger() logger.handlers = [initialized_handler, not_initialized_handler] await logger.shutdown() initialized_handler.flush.assert_awaited_once() initialized_handler.close.assert_awaited_once() not_initialized_handler.flush.assert_not_awaited() not_initialized_handler.close.assert_not_awaited()