def test_async_handler_thread_log(loop): """Test logging data from a thread.""" loop._thread_ident = threading.get_ident() queue = asyncio.Queue(loop=loop) base_handler = logging.handlers.QueueHandler(queue) handler = logging_util.AsyncHandler(loop, base_handler) log_record = logging.makeLogRecord({'msg': "Test Log Record"}) def add_log(): """Emit a mock log.""" handler.emit(log_record) handler.close() yield from loop.run_in_executor(None, add_log) yield from handler.async_close(True) assert queue.get_nowait().msg == "Test Log Record" assert queue.empty()
def test_async_handler_loop_log(loop): """Test logging data inside from inside the event loop.""" loop._thread_ident = threading.get_ident() queue = asyncio.Queue(loop=loop) base_handler = logging.handlers.QueueHandler(queue) handler = logging_util.AsyncHandler(loop, base_handler) # Test passthrough props and noop functions assert handler.createLock() is None assert handler.acquire() is None assert handler.release() is None assert handler.formatter is base_handler.formatter assert handler.name is base_handler.get_name() handler.name = 'mock_name' assert base_handler.get_name() == 'mock_name' log_record = logging.makeLogRecord({'msg': "Test Log Record"}) handler.emit(log_record) yield from handler.async_close(True) assert queue.get_nowait().msg == "Test Log Record" assert queue.empty()