Skip to content

Commit d2590f5

Browse files
test: restore anyio marker and add capability coverage tests
1 parent 9bfbe1c commit d2590f5

1 file changed

Lines changed: 44 additions & 0 deletions

File tree

tests/client/test_session_group.py

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,6 +168,50 @@ async def test_client_session_group_skips_unsupported_capabilities(
168168
assert "ping" in group.tools
169169

170170

171+
@pytest.mark.anyio
172+
@pytest.mark.anyio
173+
async def test_client_session_group_skips_unsupported_tools(
174+
mock_exit_stack: contextlib.AsyncExitStack,
175+
):
176+
mock_server_info = mock.Mock(spec=types.Implementation)
177+
mock_server_info.name = "TestServer"
178+
179+
mock_session = mock.AsyncMock(spec=mcp.ClientSession)
180+
181+
mock_prompt = mock.Mock(spec=types.Prompt)
182+
mock_prompt.name = "prompt"
183+
184+
mock_resource = mock.Mock(spec=types.Resource)
185+
mock_resource.name = "resource"
186+
187+
mock_session.list_prompts.return_value = mock.AsyncMock(prompts=[mock_prompt])
188+
mock_session.list_resources.return_value = mock.AsyncMock(resources=[mock_resource])
189+
mock_session.list_tools.return_value = mock.AsyncMock(tools=[])
190+
191+
capabilities = mock.Mock()
192+
capabilities.tools = None
193+
capabilities.prompts = object()
194+
capabilities.resources = object()
195+
196+
initialize_result = mock.Mock()
197+
initialize_result.capabilities = capabilities
198+
mock_session.initialize_result = initialize_result
199+
200+
group = ClientSessionGroup(exit_stack=mock_exit_stack)
201+
202+
await group._aggregate_components(
203+
mock_server_info,
204+
mock_session,
205+
)
206+
207+
mock_session.list_tools.assert_not_awaited()
208+
mock_session.list_prompts.assert_awaited_once()
209+
mock_session.list_resources.assert_awaited_once()
210+
211+
assert "prompt" in group.prompts
212+
assert "resource" in group.resources
213+
214+
171215
@pytest.mark.anyio
172216
async def test_client_session_group_connect_to_server_with_name_hook(mock_exit_stack: contextlib.AsyncExitStack):
173217
"""Test connecting with a component name hook."""

0 commit comments

Comments
 (0)