Add SyncResponse.stream
This commit is contained in:
parent
4a36ec74c7
commit
c9b9ea07b6
@ -30,6 +30,14 @@ class SyncResponse:
|
||||
def read(self) -> bytes:
|
||||
return asyncio_run(self._response.read())
|
||||
|
||||
def stream(self) -> typing.Iterator[bytes]:
|
||||
inner = self._response.stream()
|
||||
while True:
|
||||
try:
|
||||
yield asyncio_run(inner.__anext__())
|
||||
except StopAsyncIteration as exc:
|
||||
break
|
||||
|
||||
|
||||
class SyncClient:
|
||||
def __init__(self, client: Client):
|
||||
|
||||
@ -36,3 +36,24 @@ def test_post(server):
|
||||
with httpcore.SyncConnectionPool() as http:
|
||||
response = http.request("POST", "http://127.0.0.1:8000/", body=b"Hello, world!")
|
||||
assert response.status_code == 200
|
||||
|
||||
|
||||
@threadpool
|
||||
def test_stream_response(server):
|
||||
with httpcore.SyncConnectionPool() as http:
|
||||
response = http.request("GET", "http://127.0.0.1:8000/", stream=True)
|
||||
assert response.status_code == 200
|
||||
assert not hasattr(response, "body")
|
||||
body = response.read()
|
||||
assert body == b"Hello, world!"
|
||||
|
||||
|
||||
@threadpool
|
||||
def test_stream_iterator(server):
|
||||
with httpcore.SyncConnectionPool() as http:
|
||||
response = http.request("GET", "http://127.0.0.1:8000/", stream=True)
|
||||
assert response.status_code == 200
|
||||
body = b''
|
||||
for chunk in response.stream():
|
||||
body += chunk
|
||||
assert body == b"Hello, world!"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user