Skip to content

Commit 6824c33

Browse files
committed
test: cover BaseSession reentry guard
1 parent 20630de commit 6824c33

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
@@ -157,6 +157,26 @@ async def test_client_session_requires_context_manager():
157157
await session.initialize()
158158

159159

160+
@pytest.mark.anyio
161+
async def test_client_session_reentry_raises_runtime_error():
162+
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)
163+
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[SessionMessage](1)
164+
165+
async with (
166+
client_to_server_send,
167+
client_to_server_receive,
168+
server_to_client_send,
169+
server_to_client_receive,
170+
):
171+
session = ClientSession(server_to_client_receive, client_to_server_send)
172+
await session.__aenter__()
173+
try:
174+
with pytest.raises(RuntimeError, match="already running"):
175+
await session.__aenter__()
176+
finally:
177+
await session.__aexit__(None, None, None)
178+
179+
160180
@pytest.mark.anyio
161181
async def test_client_session_custom_client_info():
162182
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)

0 commit comments

Comments
 (0)