Skip to content

Commit b260d4a

Browse files
committed
test: cover EndOfStream without propagated error
1 parent 33708de commit b260d4a

1 file changed

Lines changed: 26 additions & 0 deletions

File tree

tests/shared/test_session.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -482,3 +482,29 @@ async def make_request(client_session: ClientSession):
482482

483483
assert len(server_error_holder) == 1
484484
assert server_error_holder[0].error.code == INTERNAL_ERROR
485+
486+
487+
@pytest.mark.anyio
488+
async def test_send_request_end_of_stream_without_propagated_error():
489+
"""Ensure EndOfStream is surfaced when no propagated error is present."""
490+
async with create_client_server_memory_streams() as (client_streams, server_streams):
491+
client_read, client_write = client_streams
492+
server_read, _server_write = server_streams
493+
494+
async def mock_server(client_session: ClientSession):
495+
message = await server_read.receive()
496+
assert isinstance(message, SessionMessage)
497+
assert isinstance(message.message, JSONRPCRequest)
498+
response_stream = client_session._response_streams[message.message.id]
499+
await response_stream.aclose()
500+
501+
async def make_request(client_session: ClientSession):
502+
with pytest.raises(anyio.EndOfStream):
503+
await client_session.send_ping()
504+
505+
async with (
506+
anyio.create_task_group() as tg,
507+
ClientSession(read_stream=client_read, write_stream=client_write) as client_session,
508+
):
509+
tg.start_soon(mock_server, client_session)
510+
tg.start_soon(make_request, client_session)

0 commit comments

Comments
 (0)