@@ -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