mirror of
https://github.com/aljazceru/mcp-python-sdk.git
synced 2026-01-09 00:44:20 +01:00
test: Add test for unlimited tool listing (issue #100)
This commit is contained in:
27
tests/issues/test_100_tool_listing.py
Normal file
27
tests/issues/test_100_tool_listing.py
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import pytest
|
||||||
|
from mcp.server.fastmcp import FastMCP
|
||||||
|
|
||||||
|
pytestmark = pytest.mark.anyio
|
||||||
|
|
||||||
|
async def test_list_tools_returns_all_tools():
|
||||||
|
mcp = FastMCP("TestTools")
|
||||||
|
|
||||||
|
# Create 100 tools with unique names
|
||||||
|
num_tools = 100
|
||||||
|
for i in range(num_tools):
|
||||||
|
@mcp.tool(name=f"tool_{i}")
|
||||||
|
def dummy_tool_func():
|
||||||
|
f"""Tool number {i}"""
|
||||||
|
return i
|
||||||
|
globals()[f'dummy_tool_{i}'] = dummy_tool_func # Keep reference to avoid garbage collection
|
||||||
|
|
||||||
|
# Get all tools
|
||||||
|
tools = await mcp.list_tools()
|
||||||
|
|
||||||
|
# Verify we get all tools
|
||||||
|
assert len(tools) == num_tools, f"Expected {num_tools} tools, but got {len(tools)}"
|
||||||
|
|
||||||
|
# Verify each tool is unique and has the correct name
|
||||||
|
tool_names = [tool.name for tool in tools]
|
||||||
|
expected_names = [f"tool_{i}" for i in range(num_tools)]
|
||||||
|
assert sorted(tool_names) == sorted(expected_names), "Tool names don't match expected names"
|
||||||
Reference in New Issue
Block a user