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']
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))
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']
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
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()
async def test_pump_queue_strings(loop): expected = ['foo', 'bar'] queue = deque(expected) result = await as_list(pump_queue(queue)) assert result == expected
async def test_pump_queue_empty_queue(loop): queue = deque([]) result = await as_list(pump_queue(queue)) assert result == []