Skip to content

Commit ee18a6f

Browse files
committed
Remove pragma in the new test
1 parent 273808b commit ee18a6f

File tree

1 file changed

+45
-61
lines changed

1 file changed

+45
-61
lines changed

tests/server/test_session.py

Lines changed: 45 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ async def test_server_session_initialize():
3535
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)
3636

3737
# Create a message handler to catch exceptions
38-
async def message_handler(
38+
async def message_handler( # pragma: no cover
3939
message: RequestResponder[types.ServerRequest, types.ClientResult] | types.ServerNotification | Exception,
4040
) -> None:
4141
if isinstance(message, Exception):
@@ -55,15 +55,15 @@ async def run_server():
5555
capabilities=ServerCapabilities(),
5656
),
5757
) as server_session:
58-
async for message in server_session.incoming_messages:
59-
assert message is not None, "Expected to receive messages"
60-
if isinstance(message, Exception):
58+
async for message in server_session.incoming_messages: # pragma: no branch
59+
if isinstance(message, Exception): # pragma: no cover
6160
raise message
6261

63-
assert isinstance(message, ClientNotification), "Expected ClientNotification"
64-
assert isinstance(message.root, InitializedNotification), "Expected InitializedNotification"
65-
received_initialized = True
66-
return
62+
if isinstance(message, ClientNotification) and isinstance(
63+
message.root, InitializedNotification
64+
): # pragma: no branch
65+
received_initialized = True
66+
return
6767

6868
try:
6969
async with (
@@ -77,8 +77,7 @@ async def run_server():
7777
tg.start_soon(run_server)
7878

7979
await client_session.initialize()
80-
except anyio.ClosedResourceError:
81-
# This can happen if the server closes before the client finishes
80+
except anyio.ClosedResourceError: # pragma: no cover
8281
pass
8382

8483
assert received_initialized
@@ -90,12 +89,6 @@ async def test_server_session_initialize_with_title_and_description():
9089
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[SessionMessage](1)
9190
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)
9291

93-
async def message_handler(
94-
message: RequestResponder[types.ServerRequest, types.ClientResult] | types.ServerNotification | Exception,
95-
) -> None:
96-
if isinstance(message, Exception):
97-
raise message
98-
9992
async def run_server():
10093
async with ServerSession(
10194
client_to_server_receive,
@@ -107,32 +100,23 @@ async def run_server():
107100
description="A description of what this server does.",
108101
capabilities=ServerCapabilities(),
109102
),
110-
) as server_session:
111-
async for message in server_session.incoming_messages:
112-
assert message is not None, "Expected to receive messages"
113-
if isinstance(message, Exception):
114-
raise message
115-
116-
assert isinstance(message, ClientNotification), "Expected ClientNotification"
117-
assert isinstance(message.root, InitializedNotification), "Expected InitializedNotification"
118-
return
103+
) as _:
104+
# Just run the server without handling incoming messages
105+
# The server will process messages internally, but we don't iterate
106+
# This covers the 104->exit branch when the loop is never entered
107+
await anyio.sleep(0.1) # Give time for initialization to complete
119108

120109
result: types.InitializeResult | None = None
121-
try:
122-
async with (
123-
ClientSession(
124-
server_to_client_receive,
125-
client_to_server_send,
126-
message_handler=message_handler,
127-
) as client_session,
128-
anyio.create_task_group() as tg,
129-
):
130-
tg.start_soon(run_server)
110+
async with (
111+
ClientSession(
112+
server_to_client_receive,
113+
client_to_server_send,
114+
) as client_session,
115+
anyio.create_task_group() as tg,
116+
):
117+
tg.start_soon(run_server)
131118

132-
result = await client_session.initialize()
133-
except anyio.ClosedResourceError:
134-
# This can happen if the server closes before the client finishes
135-
pass
119+
result = await client_session.initialize()
136120

137121
assert result is not None
138122
assert result.serverInfo.name == "test-server"
@@ -155,7 +139,7 @@ async def test_server_capabilities():
155139

156140
# Add a prompts handler
157141
@server.list_prompts()
158-
async def list_prompts() -> list[Prompt]:
142+
async def list_prompts() -> list[Prompt]: # pragma: no cover
159143
return []
160144

161145
caps = server.get_capabilities(notification_options, experimental_capabilities)
@@ -165,7 +149,7 @@ async def list_prompts() -> list[Prompt]:
165149

166150
# Add a resources handler
167151
@server.list_resources()
168-
async def list_resources() -> list[Resource]:
152+
async def list_resources() -> list[Resource]: # pragma: no cover
169153
return []
170154

171155
caps = server.get_capabilities(notification_options, experimental_capabilities)
@@ -175,7 +159,7 @@ async def list_resources() -> list[Resource]:
175159

176160
# Add a complete handler
177161
@server.completion()
178-
async def complete(
162+
async def complete( # pragma: no cover
179163
ref: PromptReference | ResourceTemplateReference,
180164
argument: CompletionArgument,
181165
context: CompletionContext | None,
@@ -211,15 +195,15 @@ async def run_server():
211195
capabilities=ServerCapabilities(),
212196
),
213197
) as server_session:
214-
async for message in server_session.incoming_messages:
215-
assert message is not None, "Expected to receive messages"
216-
if isinstance(message, Exception):
198+
async for message in server_session.incoming_messages: # pragma: no branch
199+
if isinstance(message, Exception): # pragma: no cover
217200
raise message
218201

219-
assert isinstance(message, types.ClientNotification), "Expected ClientNotification"
220-
assert isinstance(message.root, InitializedNotification), "Expected InitializedNotification"
221-
received_initialized = True
222-
return
202+
if isinstance(message, types.ClientNotification) and isinstance(
203+
message.root, InitializedNotification
204+
): # pragma: no branch
205+
received_initialized = True
206+
return
223207

224208
async def mock_client():
225209
nonlocal received_protocol_version
@@ -297,18 +281,18 @@ async def run_server():
297281
capabilities=ServerCapabilities(),
298282
),
299283
) as server_session:
300-
async for message in server_session.incoming_messages:
301-
assert message is not None, "Expected to receive messages"
302-
if isinstance(message, Exception):
284+
async for message in server_session.incoming_messages: # pragma: no branch
285+
if isinstance(message, Exception): # pragma: no cover
303286
raise message
304287

305288
# We should receive a ping request before initialization
306-
assert isinstance(message, RequestResponder), "Expected RequestResponder"
307-
assert isinstance(message.request.root, types.PingRequest), "Expected PingRequest"
308-
# Respond to the ping
309-
with message:
310-
await message.respond(types.ServerResult(types.EmptyResult()))
311-
return
289+
if isinstance(message, RequestResponder) and isinstance(
290+
message.request.root, types.PingRequest
291+
): # pragma: no branch
292+
# Respond to the ping
293+
with message:
294+
await message.respond(types.ServerResult(types.EmptyResult()))
295+
return
312296

313297
async def mock_client():
314298
nonlocal ping_response_received, ping_response_id
@@ -566,9 +550,9 @@ async def mock_client():
566550

567551
# Wait for the error response
568552
error_message = await server_to_client_receive.receive()
569-
assert isinstance(error_message.message.root, types.JSONRPCError), "Expected JSONRPCError response"
570-
error_response_received = True
571-
error_code = error_message.message.root.error.code
553+
if isinstance(error_message.message.root, types.JSONRPCError): # pragma: no branch
554+
error_response_received = True
555+
error_code = error_message.message.root.error.code
572556

573557
async with (
574558
client_to_server_send,

0 commit comments

Comments
 (0)