Skip to content

Commit 6af150a

Browse files
test: add coverage for None branches in from_session_state
This test ensures the branches where server_capabilities and server_info are None are covered, achieving 100% branch coverage. Related: #2111
1 parent 33cc03c commit 6af150a

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

tests/client/test_session.py

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -829,6 +829,49 @@ async def test_client_session_from_state():
829829
pass
830830

831831

832+
@pytest.mark.anyio
833+
async def test_client_session_from_state_without_capabilities():
834+
"""Test that from_session_state() handles None capabilities and server_info."""
835+
from mcp.shared.session_state import SessionState
836+
837+
# Create a session state with None capabilities (before initialization)
838+
state = SessionState(
839+
session_id="test-session-minimal",
840+
protocol_version=LATEST_PROTOCOL_VERSION,
841+
next_request_id=0,
842+
server_capabilities=None,
843+
server_info=None,
844+
initialized_sent=False,
845+
)
846+
847+
# Create streams
848+
client_to_server_send, client_to_server_receive = anyio.create_memory_object_stream[SessionMessage](1)
849+
server_to_client_send, server_to_client_receive = anyio.create_memory_object_stream[SessionMessage](1)
850+
851+
# Create session from state
852+
session = ClientSession.from_session_state(
853+
state,
854+
server_to_client_receive,
855+
client_to_server_send,
856+
)
857+
858+
# Verify the session was created with the correct state
859+
assert session._session_id == "test-session-minimal"
860+
assert session._request_id == 0
861+
assert session._server_capabilities is None
862+
assert session._server_info is None
863+
assert session._initialized_sent is False
864+
865+
# Clean up streams
866+
async with (
867+
client_to_server_send,
868+
client_to_server_receive,
869+
server_to_client_send,
870+
server_to_client_receive,
871+
):
872+
pass
873+
874+
832875
@pytest.mark.anyio
833876
async def test_client_session_state_roundtrip():
834877
"""Test that session state can be serialized and restored."""

0 commit comments

Comments
 (0)