Skip to content

Commit aac5fab

Browse files
Fix pyright errors and coverage pragmas
- Add type annotations to memory object streams in tests - Import SessionMessage for type annotations - Add pragma: no cover to lines 556 and 571 specifically Github-Issue:#1654
1 parent f43fd2e commit aac5fab

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

src/mcp/client/streamable_http.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ async def resume_stream(
553553
timeout=httpx.Timeout(self.timeout, read=self.sse_read_timeout),
554554
) as event_source:
555555
event_source.response.raise_for_status()
556-
logger.debug(f"Resumed SSE stream from event ID: {last_event_id}")
556+
logger.debug(f"Resumed SSE stream from event ID: {last_event_id}") # pragma: no cover
557557

558558
async for sse in event_source.aiter_sse(): # pragma: no cover
559559
_is_complete, has_event_id = await self._handle_sse_event(
@@ -568,7 +568,7 @@ async def resume_stream(
568568

569569
except httpx.HTTPStatusError as exc:
570570
if exc.response.status_code == 405:
571-
logger.debug("Server does not support SSE resumption via GET")
571+
logger.debug("Server does not support SSE resumption via GET") # pragma: no cover
572572
else:
573573
logger.warning(f"Failed to resume stream: {exc}")
574574
except Exception as exc: # pragma: no cover

tests/shared/test_streamable_http.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
from mcp.server.transport_security import TransportSecuritySettings
4040
from mcp.shared.context import RequestContext
4141
from mcp.shared.exceptions import McpError
42-
from mcp.shared.message import ClientMessageMetadata
42+
from mcp.shared.message import ClientMessageMetadata, SessionMessage
4343
from mcp.shared.session import RequestResponder
4444
from mcp.types import InitializeResult, TextContent, TextResourceContents, Tool
4545
from tests.test_helpers import wait_for_server
@@ -1768,8 +1768,10 @@ async def test_resume_stream_without_session_id():
17681768
transport = StreamableHTTPTransport("http://localhost:8000")
17691769
assert transport.session_id is None
17701770

1771-
# Create a dummy stream writer
1772-
read_stream_writer, read_stream_reader = anyio.create_memory_object_stream(0)
1771+
# Create a dummy stream writer with type annotation
1772+
read_stream_writer, read_stream_reader = anyio.create_memory_object_stream[
1773+
SessionMessage | Exception
1774+
](0)
17731775

17741776
async with httpx.AsyncClient() as client:
17751777
# Should return early without making request
@@ -1804,7 +1806,9 @@ async def test_resume_stream_with_405_response(basic_server: None, basic_server_
18041806
transport.session_id = get_session_id()
18051807

18061808
# Now try to resume with the session - server might return 405
1807-
read_stream_writer, read_stream_reader = anyio.create_memory_object_stream(0)
1809+
read_stream_writer, read_stream_reader = anyio.create_memory_object_stream[
1810+
SessionMessage | Exception
1811+
](0)
18081812

18091813
async with httpx.AsyncClient() as client:
18101814
# This should handle the 405 gracefully

0 commit comments

Comments
 (0)