예제 #1
0
async def test_pump_queue_string_future(loop):
    future = loop.create_future()
    queue = deque(['foo', future, 'bar'])

    result = await as_list(pump_queue(queue))
    assert result == ['foo']

    future.set_result('test')
    result = await as_list(pump_queue(queue))
    assert result == ['test', 'bar']
예제 #2
0
async def test_pump_queue_unwrap_exception(loop):
    future = loop.create_future()
    queue = deque([future])

    future.set_exception(TypeError('test'))
    with pytest.raises(TypeError):
        await as_list(pump_queue(queue))
예제 #3
0
async def test_pump_queue_wait_unwraps(loop):
    future = loop.create_future()
    queue = deque([future])

    future.set_result('test')
    result = await as_list(pump_queue(queue, wait=True))
    assert result == ['test']
예제 #4
0
async def test_pump_queue_arbitrary(loop):
    class F:
        pass

    expected = [F(), F()]
    queue = deque(expected)

    result = await as_list(pump_queue(queue))
    assert result == expected
예제 #5
0
async def test_pump_queue_wait_waits(loop):
    future = loop.create_future()
    queue = deque(['foo', future, 'bar'])

    result = []
    with pytest.raises(asyncio.TimeoutError):
        coro = as_list(pump_queue(queue, wait=True), result)
        await asyncio.wait_for(coro, 0)

    assert result == ['foo']
    assert future.cancelled()
예제 #6
0
async def test_pump_queue_strings(loop):
    expected = ['foo', 'bar']
    queue = deque(expected)

    result = await as_list(pump_queue(queue))
    assert result == expected
예제 #7
0
async def test_pump_queue_empty_queue(loop):
    queue = deque([])

    result = await as_list(pump_queue(queue))
    assert result == []