Add meta to Client methods (#1923)

This commit is contained in:
Marcelo Trylesinski 2026-01-22 14:50:39 +01:00 • committed by GitHub
commit f0ab53e194
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 221 additions and 156 deletions

View file

@ -275,11 +275,10 @@ async def test_progress_context_manager():
progress_token = "client_token_456"
# Create request context
meta = types.RequestParams.Meta(progress_token=progress_token)
request_context = RequestContext(
request_id="test-request",
session=client_session,
meta=meta,
meta={"progress_token": progress_token},
lifespan_context=None,
)

View file

@ -8,7 +8,6 @@ from urllib.parse import urlparse
import anyio
import pytest
import uvicorn
from pydantic import AnyUrl
from starlette.applications import Starlette
from starlette.routing import WebSocketRoute
from starlette.websockets import WebSocket
@ -164,7 +163,7 @@ async def test_ws_client_happy_request_and_response(
initialized_ws_client_session: ClientSession,
) -> None:
"""Test a successful request and response via WebSocket"""
result = await initialized_ws_client_session.read_resource(AnyUrl("foobar://example"))
result = await initialized_ws_client_session.read_resource("foobar://example")
assert isinstance(result, ReadResourceResult)
assert isinstance(result.contents, list)
assert len(result.contents) > 0
@ -178,7 +177,7 @@ async def test_ws_client_exception_handling(
) -> None:
"""Test exception handling in WebSocket communication"""
with pytest.raises(McpError) as exc_info:
await initialized_ws_client_session.read_resource(AnyUrl("unknown://example"))
await initialized_ws_client_session.read_resource("unknown://example")
assert exc_info.value.error.code == 404
@ -190,11 +189,11 @@ async def test_ws_client_timeout(
# Set a very short timeout to trigger a timeout exception
with pytest.raises(TimeoutError):
with anyio.fail_after(0.1): # 100ms timeout
await initialized_ws_client_session.read_resource(AnyUrl("slow://example"))
await initialized_ws_client_session.read_resource("slow://example")
# Now test that we can still use the session after a timeout
with anyio.fail_after(5): # Longer timeout to allow completion
result = await initialized_ws_client_session.read_resource(AnyUrl("foobar://example"))
result = await initialized_ws_client_session.read_resource("foobar://example")
assert isinstance(result, ReadResourceResult)
assert isinstance(result.contents, list)
assert len(result.contents) > 0