async def test_outside_source_stream_immediate_data(): stream = OutsideSourceReplayStream() f1 = asyncio.ensure_future(stream.wait_for_header()) f2 = asyncio.ensure_future(stream.wait_for_data(0)) stream.set_header("header") stream.feed_data(b"Lorem") assert await f1 == "header" assert await f2 == 5 assert stream.header == "header" assert stream.data.bytes() == b"Lorem"
async def test_outside_source_stream_read_header(event_loop): stream = OutsideSourceReplayStream() f = asyncio.ensure_future(stream.wait_for_header()) exhaust_callbacks(event_loop) assert not f.done() stream.set_header("header") assert await f == "header" assert stream.header == "header" stream.finish() await stream.wait_for_ended() assert stream.data.bytes() == b""
async def test_outside_source_stream_immediate_end(event_loop): stream = OutsideSourceReplayStream() f1 = asyncio.ensure_future(stream.wait_for_header()) f2 = asyncio.ensure_future(stream.wait_for_data(0)) f3 = asyncio.ensure_future(stream.wait_for_ended()) exhaust_callbacks(event_loop) assert not any(x.done() for x in [f1, f2, f3]) stream.finish() assert await f1 is None assert await f2 == 0 assert stream.header is None assert stream.data.bytes() == b"" await f3