Skip to content

Commit 744b51a

Browse files
committed
full test coverage
1 parent f09087a commit 744b51a

2 files changed

Lines changed: 43 additions & 2 deletions

File tree

COVERAGE

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
1-
Line coverage: 99.90% (9025 / 9031)
2-
Branch coverage: 99.80% (3020 / 3026)
1+
Line coverage: 100.00% (9031 / 9031)
2+
Branch coverage: 100.00% (3026 / 3026)

tests/pydantic/test_slash_commands.py

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
_iter_mcp_server_infos,
1414
_mcp_server_info_from_bridge_metadata,
1515
_mcp_server_info_from_http_toolset,
16+
_mcp_server_info_from_mcp_toolset,
1617
_mcp_server_info_from_session_payload,
1718
_mcp_server_info_from_stdio_toolset,
19+
_mcp_target_from_client,
1820
_toolset_name,
1921
build_available_commands,
2022
extract_session_mcp_servers,
@@ -876,6 +878,45 @@ def test_list_agent_mcp_servers_handles_mcp_toolset() -> None:
876878
("local-mcp", "stdio", "python server.py"),
877879
]
878880

881+
sse_transport_cls = type("StreamableHttpSseTransport", (), {})
882+
sse_transport_cls.__module__ = "fastmcp.client.transports"
883+
sse_transport = sse_transport_cls()
884+
cast(Any, sse_transport).url = "https://example.com/sse"
885+
sse_toolset = mcp_toolset_cls()
886+
cast(Any, sse_toolset).client = SimpleNamespace(transport=sse_transport)
887+
sse_info = _mcp_server_info_from_mcp_toolset(sse_toolset)
888+
assert sse_info is not None
889+
assert (sse_info.transport, sse_info.target) == ("sse", "https://example.com/sse")
890+
891+
transport_http_toolset = mcp_toolset_cls()
892+
cast(Any, transport_http_toolset).client = SimpleNamespace(
893+
transport=SimpleNamespace(url="https://example.com/mcp")
894+
)
895+
transport_http_info = _mcp_server_info_from_mcp_toolset(transport_http_toolset)
896+
assert transport_http_info is not None
897+
assert (transport_http_info.transport, transport_http_info.target) == (
898+
"http",
899+
"https://example.com/mcp",
900+
)
901+
902+
no_client_toolset = mcp_toolset_cls()
903+
assert _mcp_server_info_from_mcp_toolset(no_client_toolset) is None
904+
assert _iter_mcp_server_infos(no_client_toolset) == []
905+
906+
assert _mcp_target_from_client(SimpleNamespace()) == ("http", "<mcp>")
907+
908+
fallback_toolset = mcp_toolset_cls()
909+
cast(Any, fallback_toolset).client = SimpleNamespace(
910+
transport=SimpleNamespace(),
911+
url="https://fallback.example/mcp",
912+
)
913+
fallback_info = _mcp_server_info_from_mcp_toolset(fallback_toolset)
914+
assert fallback_info is not None
915+
assert (fallback_info.transport, fallback_info.target) == (
916+
"http",
917+
"https://fallback.example/mcp",
918+
)
919+
879920

880921
def test_mcp_servers_slash_command_renders_attached_servers(tmp_path: Path) -> None:
881922
session_store = MemorySessionStore()

0 commit comments

Comments
 (0)