Skip to content

Commit 6c65d70

Browse files
committed
test: cover BaseSession reentry guard
1 parent ffccfd3 commit 6c65d70

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

tests/client/test_session.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,26 @@ async def test_client_session_requires_context_manager():
127127
await session.initialize()
128128

129129

130+
@pytest.mark.anyio
131+
async def test_client_session_reentry_raises_runtime_error():
132+
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)
133+
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[SessionMessage](1)
134+
135+
async with (
136+
client_to_server_send,
137+
client_to_server_receive,
138+
server_to_client_send,
139+
server_to_client_receive,
140+
):
141+
session = ClientSession(server_to_client_receive, client_to_server_send)
142+
await session.__aenter__()
143+
try:
144+
with pytest.raises(RuntimeError, match="already running"):
145+
await session.__aenter__()
146+
finally:
147+
await session.__aexit__(None, None, None)
148+
149+
130150
@pytest.mark.anyio
131151
async def test_client_session_custom_client_info():
132152
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)

0 commit comments

Comments
 (0)