types: Setting default value for method: Literal (#1292)

This commit is contained in:
Sreenath Somarajapuram 2025-08-26 08:22:56 -07:00 • committed by GitHub
commit 07ae8c0d4e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 67 additions and 104 deletions

View file

@ -35,7 +35,7 @@ async def test_send_request_stream_cleanup():
)
# Create a test request
request = ClientRequest(PingRequest(method="ping"))
request = ClientRequest(PingRequest())
# Patch the _write_stream.send method to raise an exception
async def mock_send(*args: Any, **kwargs: Any):

View file

@ -24,7 +24,7 @@ async def test_resource_templates():
# Note: list_resource_templates() returns a decorator that wraps the handler
# The handler returns a ServerResult with a ListResourceTemplatesResult inside
result = await mcp._mcp_server.request_handlers[types.ListResourceTemplatesRequest](
types.ListResourceTemplatesRequest(method="resources/templates/list", params=None)
types.ListResourceTemplatesRequest(params=None)
)
assert isinstance(result.root, types.ListResourceTemplatesResult)
templates = result.root.resourceTemplates

View file

@ -54,7 +54,6 @@ async def test_server_base64_encoding_issue():
# Create a request
request = ReadResourceRequest(
method="resources/read",
params=ReadResourceRequestParams(uri=AnyUrl("test://resource")),
)

View file

@ -61,7 +61,6 @@ async def test_server_remains_functional_after_cancel():
await client.send_request(
ClientRequest(
CallToolRequest(
method="tools/call",
params=CallToolRequestParams(name="test_tool", arguments={}),
)
),
@ -83,7 +82,6 @@ async def test_server_remains_functional_after_cancel():
await client.send_notification(
ClientNotification(
CancelledNotification(
method="notifications/cancelled",
params=CancelledNotificationParams(
requestId=first_request_id,
reason="Testing server recovery",
@ -96,7 +94,6 @@ async def test_server_remains_functional_after_cancel():
result = await client.send_request(
ClientRequest(
CallToolRequest(
method="tools/call",
params=CallToolRequestParams(name="test_tool", arguments={}),
)
),

View file

@ -35,7 +35,6 @@ async def test_read_resource_text(temp_file: Path):
# Create a request
request = types.ReadResourceRequest(
method="resources/read",
params=types.ReadResourceRequestParams(uri=FileUrl(temp_file.as_uri())),
)
@ -63,7 +62,6 @@ async def test_read_resource_binary(temp_file: Path):
# Create a request
request = types.ReadResourceRequest(
method="resources/read",
params=types.ReadResourceRequestParams(uri=FileUrl(temp_file.as_uri())),
)
@ -95,7 +93,6 @@ async def test_read_resource_default_mime(temp_file: Path):
# Create a request
request = types.ReadResourceRequest(
method="resources/read",
params=types.ReadResourceRequestParams(uri=FileUrl(temp_file.as_uri())),
)

View file

@ -88,7 +88,6 @@ async def test_request_cancellation():
await client_session.send_request(
ClientRequest(
types.CallToolRequest(
method="tools/call",
params=types.CallToolRequestParams(name="slow_tool", arguments={}),
)
),
@ -113,7 +112,6 @@ async def test_request_cancellation():
await client_session.send_notification(
ClientNotification(
CancelledNotification(
method="notifications/cancelled",
params=CancelledNotificationParams(requestId=request_id),
)
)

View file

@ -1138,7 +1138,6 @@ async def test_streamablehttp_client_resumption(event_server: tuple[SimpleEventS
await session.send_request(
types.ClientRequest(
types.CallToolRequest(
method="tools/call",
params=types.CallToolRequestParams(
name="wait_for_lock_with_notification", arguments={}
),
@ -1180,7 +1179,6 @@ async def test_streamablehttp_client_resumption(event_server: tuple[SimpleEventS
result = await session.send_request(
types.ClientRequest(
types.CallToolRequest(
method="tools/call",
params=types.CallToolRequestParams(name="release_lock", arguments={}),
)
),
@ -1193,7 +1191,6 @@ async def test_streamablehttp_client_resumption(event_server: tuple[SimpleEventS
result = await session.send_request(
types.ClientRequest(
types.CallToolRequest(
method="tools/call",
params=types.CallToolRequestParams(name="wait_for_lock_with_notification", arguments={}),
)
),

View file

@ -1,6 +1,15 @@
import pytest
from mcp.types import LATEST_PROTOCOL_VERSION, ClientRequest, JSONRPCMessage, JSONRPCRequest
from mcp.types import (
LATEST_PROTOCOL_VERSION,
ClientCapabilities,
ClientRequest,
Implementation,
InitializeRequest,
InitializeRequestParams,
JSONRPCMessage,
JSONRPCRequest,
)
@pytest.mark.anyio
@ -25,3 +34,25 @@ async def test_jsonrpc_request():
assert request.root.method == "initialize"
assert request.root.params is not None
assert request.root.params["protocolVersion"] == LATEST_PROTOCOL_VERSION
@pytest.mark.anyio
async def test_method_initialization():
"""
Test that the method is automatically set on object creation.
Testing just for InitializeRequest to keep the test simple, but should be set for other types as well.
"""
initialize_request = InitializeRequest(
params=InitializeRequestParams(
protocolVersion=LATEST_PROTOCOL_VERSION,
capabilities=ClientCapabilities(),
clientInfo=Implementation(
name="mcp",
version="0.1.0",
),
)
)
assert initialize_request.method == "initialize", "method should be set to 'initialize'"
assert initialize_request.params is not None
assert initialize_request.params.protocolVersion == LATEST_PROTOCOL_VERSION