test(mcp): align pagination mocks with request path

This commit is contained in:
kigland 2026-10-26 09:12:51 +08:00
parent c5619c94bf
commit 01013b7e33
2 changed files with 10 additions and 12 deletions

View file

@ -186,16 +186,14 @@ class TestMCPClientUnitTests:
},
)
]
mock_result = MagicMock()
mock_result.tools = mock_tools
mock_session_instance.list_tools.return_value = mock_result
mock_session_instance.send_request.return_value = ListToolsResult(tools=mock_tools)
client = MCPClient("http://example.com")
result = await client.list_tools()
assert result == mock_tools
mock_session_instance.initialize.assert_called_once()
mock_session_instance.list_tools.assert_called_once()
mock_session_instance.send_request.assert_awaited_once()
@pytest.mark.asyncio
@patch.object(mcp_client_module, "streamable_http_client") # test-quality-ok: exercises MCPClient wiring; the walk itself is covered sessionless in test_tools.py
@ -229,7 +227,7 @@ class TestMCPClientUnitTests:
description="Tool 100",
inputSchema={},
)
mock_session_instance.list_tools.side_effect = [
mock_session_instance.send_request.side_effect = [
ListToolsResult(tools=first_page_tools, nextCursor="page-2"),
ListToolsResult(tools=[second_page_tool]),
]
@ -238,8 +236,8 @@ class TestMCPClientUnitTests:
result = await client.list_tools()
assert result == [*first_page_tools, second_page_tool]
assert mock_session_instance.list_tools.call_count == 2
second_call_params = mock_session_instance.list_tools.call_args_list[1].kwargs["params"]
assert mock_session_instance.send_request.await_count == 2
second_call_params = mock_session_instance.send_request.await_args_list[1].args[0].params
assert isinstance(second_call_params, PaginatedRequestParams)
assert second_call_params.cursor == "page-2"
@ -267,7 +265,7 @@ class TestMCPClientUnitTests:
)
mock_session_ctx.__aenter__ = AsyncMock(return_value=mock_session_instance)
mock_session_instance.list_tools.side_effect = [
mock_session_instance.send_request.side_effect = [
ListToolsResult(
tools=[MCPTool(name="tool_0", description="Tool 0", inputSchema={})],
nextCursor="page-2",
@ -279,7 +277,7 @@ class TestMCPClientUnitTests:
result = await client.list_tools()
assert result == []
assert mock_session_instance.list_tools.call_count == 2
assert mock_session_instance.send_request.await_count == 2
@pytest.mark.asyncio
@patch.object(mcp_client_module, "streamable_http_client")

View file

@ -1616,7 +1616,7 @@ class TestListToolsRestAPI:
server_info=Implementation(name="stub", version="1"),
)
)
mock_session_instance.list_tools.side_effect = [
mock_session_instance.send_request.side_effect = [
ListToolsResult(
tools=[
MCPTool(
@ -1685,8 +1685,8 @@ class TestListToolsRestAPI:
assert result["error"] is None
assert result["message"] == "Successfully retrieved tools"
assert mock_session_instance.list_tools.call_count == 2
second_call_params = mock_session_instance.list_tools.call_args_list[1].kwargs["params"]
assert mock_session_instance.send_request.await_count == 2
second_call_params = mock_session_instance.send_request.await_args_list[1].args[0].params
assert isinstance(second_call_params, PaginatedRequestParams)
assert second_call_params.cursor == "page-2"