async def test_response_bytes_content(): headers, stream = encode_response(content=b"Hello, world!") assert isinstance(stream, typing.Iterable) assert isinstance(stream, typing.AsyncIterable) sync_content = b"".join([part for part in stream]) async_content = b"".join([part async for part in stream]) assert headers == {"Content-Length": "13"} assert sync_content == b"Hello, world!" assert async_content == b"Hello, world!"
async def test_response_empty_content(): headers, stream = encode_response() assert isinstance(stream, typing.Iterable) assert isinstance(stream, typing.AsyncIterable) sync_content = b"".join([part for part in stream]) async_content = b"".join([part async for part in stream]) assert headers == {} assert sync_content == b"" assert async_content == b""
async def test_response_aiterator_content(): async def hello_world(): yield b"Hello, " yield b"world!" headers, stream = encode_response(content=hello_world()) assert not isinstance(stream, typing.Iterable) assert isinstance(stream, typing.AsyncIterable) content = b"".join([part async for part in stream]) assert headers == {"Transfer-Encoding": "chunked"} assert content == b"Hello, world!" with pytest.raises(StreamConsumed): [part async for part in stream]
def test_response_invalid_argument(): with pytest.raises(TypeError): encode_response(123) # type: ignore