示例#1
0
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()
示例#2
0
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()