Get baseline 100% clean coverage (#1553)

This commit is contained in:
Max Isbey 2025-11-11 13:09:32 +00:00 • committed by GitHub
commit 89e9c43acf
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -168,10 +168,10 @@ class Server(Generic[LifespanResultT, RequestT]):
from importlib.metadata import version
return version(package)
except Exception:
except Exception: # pragma: no cover
pass
return "unknown"
return "unknown" # pragma: no cover
return InitializationOptions(
server_name=self.name,
@ -212,7 +212,7 @@ class Server(Generic[LifespanResultT, RequestT]):
tools_capability = types.ToolsCapability(listChanged=notification_options.tools_changed)
# Set logging capabilities if handler exists
if types.SetLevelRequest in self.request_handlers:
if types.SetLevelRequest in self.request_handlers: # pragma: no cover
logging_capability = types.LoggingCapability()
# Set completions capabilities if handler exists
@ -326,7 +326,7 @@ class Server(Generic[LifespanResultT, RequestT]):
text=data,
mimeType=mime_type or "text/plain",
)
case bytes() as data:
case bytes() as data: # pragma: no cover
import base64
return types.BlobResourceContents(
@ -336,7 +336,7 @@ class Server(Generic[LifespanResultT, RequestT]):
)
match result:
case str() | bytes() as data:
case str() | bytes() as data: # pragma: no cover
warnings.warn(
"Returning str or bytes from read_resource is deprecated. "
"Use Iterable[ReadResourceContents] instead.",
@ -353,10 +353,10 @@ class Server(Generic[LifespanResultT, RequestT]):
contents=contents_list,
)
)
case _:
case _: # pragma: no cover
raise ValueError(f"Unexpected return type from read_resource: {type(result)}")
return types.ServerResult(
return types.ServerResult( # pragma: no cover
types.ReadResourceResult(
contents=[content],
)
@ -367,7 +367,7 @@ class Server(Generic[LifespanResultT, RequestT]):
return decorator
def set_logging_level(self):
def set_logging_level(self): # pragma: no cover
def decorator(func: Callable[[types.LoggingLevel], Awaitable[None]]):
logger.debug("Registering handler for SetLevelRequest")
@ -380,7 +380,7 @@ class Server(Generic[LifespanResultT, RequestT]):
return decorator
def subscribe_resource(self):
def subscribe_resource(self): # pragma: no cover
def decorator(func: Callable[[AnyUrl], Awaitable[None]]):
logger.debug("Registering handler for SubscribeRequest")
@ -393,7 +393,7 @@ class Server(Generic[LifespanResultT, RequestT]):
return decorator
def unsubscribe_resource(self):
def unsubscribe_resource(self): # pragma: no cover
def decorator(func: Callable[[AnyUrl], Awaitable[None]]):
logger.debug("Registering handler for UnsubscribeRequest")
@ -419,7 +419,7 @@ class Server(Generic[LifespanResultT, RequestT]):
result = await wrapper(req)
# Handle both old style (list[Tool]) and new style (ListToolsResult)
if isinstance(result, types.ListToolsResult):
if isinstance(result, types.ListToolsResult): # pragma: no cover
# Refresh the tool cache with returned tools
for tool in result.tools:
self._tool_cache[tool.name] = tool
@ -513,11 +513,11 @@ class Server(Generic[LifespanResultT, RequestT]):
# tool returned structured content only
maybe_structured_content = cast(StructuredContent, results)
unstructured_content = [types.TextContent(type="text", text=json.dumps(results, indent=2))]
elif hasattr(results, "__iter__"):
elif hasattr(results, "__iter__"): # pragma: no cover
# tool returned unstructured content only
unstructured_content = cast(UnstructuredContent, results)
maybe_structured_content = None
else:
else: # pragma: no cover
return self._make_error_result(f"Unexpected return type from tool: {type(results).__name__}")
# output validation
@ -650,7 +650,7 @@ class Server(Generic[LifespanResultT, RequestT]):
await self._handle_request(message, req, session, lifespan_context, raise_exceptions)
case types.ClientNotification(root=notify):
await self._handle_notification(notify)
case Exception():
case Exception(): # pragma: no cover
logger.error(f"Received exception from stream: {message}")
await session.send_log_message(
level="error",
@ -660,7 +660,7 @@ class Server(Generic[LifespanResultT, RequestT]):
if raise_exceptions:
raise message
for warning in w:
for warning in w: # pragma: no cover
logger.info("Warning: %s: %s", warning.category.__name__, warning.message)
async def _handle_request(
@ -679,7 +679,9 @@ class Server(Generic[LifespanResultT, RequestT]):
try:
# Extract request context from message metadata
request_data = None
if message.message_metadata is not None and isinstance(message.message_metadata, ServerMessageMetadata):
if message.message_metadata is not None and isinstance(
message.message_metadata, ServerMessageMetadata
): # pragma: no cover
request_data = message.message_metadata.request_context
# Set our global state that can be retrieved via
@ -694,25 +696,25 @@ class Server(Generic[LifespanResultT, RequestT]):
)
)
response = await handler(req)
except McpError as err:
except McpError as err: # pragma: no cover
response = err.error
except anyio.get_cancelled_exc_class():
except anyio.get_cancelled_exc_class(): # pragma: no cover
logger.info(
"Request %s cancelled - duplicate response suppressed",
message.request_id,
)
return
except Exception as err:
except Exception as err: # pragma: no cover
if raise_exceptions:
raise err
response = types.ErrorData(code=0, message=str(err), data=None)
finally:
# Reset the global state after we are done
if token is not None:
if token is not None: # pragma: no branch
request_ctx.reset(token)
await message.respond(response)
else:
else: # pragma: no cover
await message.respond(
types.ErrorData(
code=types.METHOD_NOT_FOUND,
@ -728,7 +730,7 @@ class Server(Generic[LifespanResultT, RequestT]):
try:
await handler(notify)
except Exception:
except Exception: # pragma: no cover
logger.exception("Uncaught exception in notification handler")