Skip to content

Commit 79cc3b1

Browse files
committed
fix: remove unnecessary pragma: no cover from test files
Remove ~100 unnecessary '# pragma: no cover' annotations from 30 test files. These lines are actually covered by tests, as detected by strict-no-cover in CI.
1 parent e942316 commit 79cc3b1

30 files changed

+101
-119
lines changed

tests/client/auth/extensions/test_client_credentials.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ def __init__(self):
2323
self._tokens: OAuthToken | None = None
2424
self._client_info: OAuthClientInformationFull | None = None
2525

26-
async def get_tokens(self) -> OAuthToken | None: # pragma: no cover
26+
async def get_tokens(self) -> OAuthToken | None:
2727
return self._tokens
2828

29-
async def set_tokens(self, tokens: OAuthToken) -> None: # pragma: no cover
29+
async def set_tokens(self, tokens: OAuthToken) -> None:
3030
self._tokens = tokens
3131

3232
async def get_client_info(self) -> OAuthClientInformationFull | None: # pragma: no cover

tests/client/conftest.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ def clear(self) -> None:
4040
self.client.sent_messages.clear()
4141
self.server.sent_messages.clear()
4242

43-
def get_client_requests(self, method: str | None = None) -> list[JSONRPCRequest]: # pragma: no cover
43+
def get_client_requests(self, method: str | None = None) -> list[JSONRPCRequest]:
4444
"""Get client-sent requests, optionally filtered by method."""
4545
return [
4646
req.message

tests/client/test_auth.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1696,7 +1696,7 @@ async def callback_handler() -> tuple[str, str | None]:
16961696
final_response = httpx.Response(200, request=final_request)
16971697
try:
16981698
await auth_flow.asend(final_response)
1699-
except StopAsyncIteration: # pragma: no cover
1699+
except StopAsyncIteration:
17001700
pass
17011701

17021702
@pytest.mark.anyio

tests/client/test_notification_response.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ def non_sdk_server(non_sdk_server_port: int) -> Generator[None, None, None]:
9494
proc.start()
9595

9696
# Wait for server to be ready
97-
try: # pragma: no cover
97+
try:
9898
wait_for_server(non_sdk_server_port, timeout=10.0)
9999
except TimeoutError: # pragma: no cover
100100
proc.kill()

tests/client/test_stdio.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ async def test_stdio_client_universal_cleanup():
157157

158158
@pytest.mark.anyio
159159
@pytest.mark.skipif(sys.platform == "win32", reason="Windows signal handling is different")
160-
async def test_stdio_client_sigint_only_process(): # pragma: no cover
160+
async def test_stdio_client_sigint_only_process():
161161
"""Test cleanup with a process that ignores SIGTERM but responds to SIGINT."""
162162
# Create a Python script that ignores SIGTERM but handles SIGINT
163163
script_content = textwrap.dedent(
@@ -481,7 +481,7 @@ def handle_term(sig, frame):
481481
await anyio.sleep(0.5)
482482

483483
# Verify child is writing
484-
if os.path.exists(marker_file): # pragma: no cover
484+
if os.path.exists(marker_file):
485485
size1 = os.path.getsize(marker_file)
486486
await anyio.sleep(0.3)
487487
size2 = os.path.getsize(marker_file)

tests/client/transports/test_memory.py

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,15 +34,13 @@ def fastmcp_server() -> FastMCP:
3434
"""Create a FastMCP server for testing."""
3535
server = FastMCP("test")
3636

37-
# pragma: no cover on handlers below - they exist only to register capabilities.
38-
# Transport tests verify stream creation and basic protocol, not handler invocation.
3937
@server.tool()
40-
def greet(name: str) -> str: # pragma: no cover
38+
def greet(name: str) -> str:
4139
"""Greet someone by name."""
4240
return f"Hello, {name}!"
4341

4442
@server.resource("test://resource")
45-
def test_resource() -> str: # pragma: no cover
43+
def test_resource() -> str:
4644
"""A test resource."""
4745
return "Test content"
4846

tests/experimental/tasks/server/test_server.py

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -310,8 +310,7 @@ async def run_server():
310310
async with anyio.create_task_group() as tg:
311311

312312
async def handle_messages():
313-
# TODO(Marcelo): Drop the pragma once https://github.com/coveragepy/coveragepy/issues/1987 is fixed.
314-
async for message in server_session.incoming_messages: # pragma: no cover
313+
async for message in server_session.incoming_messages:
315314
await server._handle_message(message, server_session, {}, False)
316315

317316
tg.start_soon(handle_messages)
@@ -388,8 +387,8 @@ async def run_server():
388387
),
389388
) as server_session:
390389
async with anyio.create_task_group() as tg:
391-
# TODO(Marcelo): Drop the pragma once https://github.com/coveragepy/coveragepy/issues/1987 is fixed.
392-
async def handle_messages(): # pragma: no cover
390+
391+
async def handle_messages():
393392
async for message in server_session.incoming_messages:
394393
await server._handle_message(message, server_session, {}, False)
395394

@@ -573,7 +572,7 @@ async def test_build_elicit_form_request() -> None:
573572
assert (
574573
request_with_task.params["_meta"]["io.modelcontextprotocol/related-task"]["taskId"] == "test-task-123"
575574
)
576-
finally: # pragma: no cover
575+
finally:
577576
await server_to_client_send.aclose()
578577
await server_to_client_receive.aclose()
579578
await client_to_server_send.aclose()
@@ -619,7 +618,7 @@ async def test_build_elicit_url_request() -> None:
619618
assert (
620619
request_with_task.params["_meta"]["io.modelcontextprotocol/related-task"]["taskId"] == "test-task-789"
621620
)
622-
finally: # pragma: no cover
621+
finally:
623622
await server_to_client_send.aclose()
624623
await server_to_client_receive.aclose()
625624
await client_to_server_send.aclose()
@@ -670,7 +669,7 @@ async def test_build_create_message_request() -> None:
670669
request_with_task.params["_meta"]["io.modelcontextprotocol/related-task"]["taskId"]
671670
== "sampling-task-456"
672671
)
673-
finally: # pragma: no cover
672+
finally:
674673
await server_to_client_send.aclose()
675674
await server_to_client_receive.aclose()
676675
await client_to_server_send.aclose()
@@ -707,7 +706,7 @@ async def test_send_message() -> None:
707706
received = await server_to_client_receive.receive()
708707
assert isinstance(received.message, JSONRPCNotification)
709708
assert received.message.method == "test/notification"
710-
finally: # pragma: no cover
709+
finally:
711710
await server_to_client_send.aclose()
712711
await server_to_client_receive.aclose()
713712
await client_to_server_send.aclose()
@@ -761,7 +760,7 @@ def route_error(self, request_id: str | int, error: ErrorData) -> bool:
761760
assert len(routed_responses) == 1
762761
assert routed_responses[0]["id"] == "test-req-1"
763762
assert routed_responses[0]["response"]["status"] == "ok"
764-
finally: # pragma: no cover
763+
finally:
765764
await server_to_client_send.aclose()
766765
await server_to_client_receive.aclose()
767766
await client_to_server_send.aclose()
@@ -816,7 +815,7 @@ def route_error(self, request_id: str | int, error: ErrorData) -> bool:
816815
assert len(routed_errors) == 1
817816
assert routed_errors[0]["id"] == "test-req-2"
818817
assert routed_errors[0]["error"].message == "Test error"
819-
finally: # pragma: no cover
818+
finally:
820819
await server_to_client_send.aclose()
821820
await server_to_client_receive.aclose()
822821
await client_to_server_send.aclose()
@@ -874,7 +873,7 @@ def route_error(self, request_id: str | int, error: ErrorData) -> bool:
874873

875874
# Verify both routers were called (first returned False, second returned True)
876875
assert router_calls == ["non_matching_response", "matching_response"]
877-
finally: # pragma: no cover
876+
finally:
878877
await server_to_client_send.aclose()
879878
await server_to_client_receive.aclose()
880879
await client_to_server_send.aclose()
@@ -933,7 +932,7 @@ def route_error(self, request_id: str | int, error: ErrorData) -> bool:
933932

934933
# Verify both routers were called (first returned False, second returned True)
935934
assert router_calls == ["non_matching_error", "matching_error"]
936-
finally: # pragma: no cover
935+
finally:
937936
await server_to_client_send.aclose()
938937
await server_to_client_receive.aclose()
939938
await client_to_server_send.aclose()

tests/issues/test_1027_win_unreachable_cleanup.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ def echo(text: str) -> str:
102102

103103
# Give server a moment to complete cleanup
104104
with anyio.move_on_after(5.0):
105-
while not Path(cleanup_marker).exists(): # pragma: no cover
105+
while not Path(cleanup_marker).exists():
106106
await anyio.sleep(0.1)
107107

108108
# Verify cleanup marker was created - this works now that stdio_client
@@ -113,9 +113,9 @@ def echo(text: str) -> str:
113113
finally:
114114
# Clean up files
115115
for path in [server_script, startup_marker, cleanup_marker]:
116-
try: # pragma: no cover
116+
try:
117117
Path(path).unlink()
118-
except FileNotFoundError: # pragma: no cover
118+
except FileNotFoundError:
119119
pass
120120

121121

@@ -224,7 +224,7 @@ def echo(text: str) -> str:
224224

225225
# Check if cleanup ran
226226
with anyio.move_on_after(5.0):
227-
while not Path(cleanup_marker).exists(): # pragma: no cover
227+
while not Path(cleanup_marker).exists():
228228
await anyio.sleep(0.1)
229229

230230
# Verify the cleanup ran - stdin closure enables graceful shutdown
@@ -234,7 +234,7 @@ def echo(text: str) -> str:
234234
finally:
235235
# Clean up files
236236
for path in [server_script, startup_marker, cleanup_marker]:
237-
try: # pragma: no cover
237+
try:
238238
Path(path).unlink()
239-
except FileNotFoundError: # pragma: no cover
239+
except FileNotFoundError:
240240
pass

tests/issues/test_129_resource_templates.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ def get_user_profile(user_id: str) -> str: # pragma: no cover
3333
assert len(templates) == 2
3434

3535
# Verify template details
36-
greeting_template = next(t for t in templates if t.name == "get_greeting") # pragma: no cover
36+
greeting_template = next(t for t in templates if t.name == "get_greeting")
3737
assert greeting_template.uri_template == "greeting://{name}"
3838
assert greeting_template.description == "Get a personalized greeting"
3939

40-
profile_template = next(t for t in templates if t.name == "get_user_profile") # pragma: no cover
40+
profile_template = next(t for t in templates if t.name == "get_user_profile")
4141
assert profile_template.uri_template == "users://{user_id}/profile"
4242
assert profile_template.description == "Dynamic user data"

tests/issues/test_1363_race_condition_streamable_http.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def check_logs_for_race_condition_errors(caplog: pytest.LogCaptureFixture, test_
9999
# Check for specific race condition errors in logs
100100
errors_found: list[str] = []
101101

102-
for record in caplog.records: # pragma: no cover
102+
for record in caplog.records:
103103
message = record.getMessage()
104104
if "ClosedResourceError" in message:
105105
errors_found.append("ClosedResourceError")

0 commit comments

Comments
 (0)