Rename FastMCP to MCPServer (#1951)
This commit is contained in:
parent
4a2d83a0cb
commit
65c614e48e
1 changed files with 713 additions and 693 deletions
|
|
@ -9,57 +9,59 @@ import sys
|
|||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
from inline_snapshot import snapshot
|
||||
from pytest_examples import CodeExample, EvalExample, find_examples
|
||||
|
||||
from mcp import Client
|
||||
from mcp.types import TextContent, TextResourceContents
|
||||
from mcp.types import CallToolResult, TextContent, TextResourceContents
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_simple_echo():
|
||||
"""Test the simple echo server"""
|
||||
from examples.fastmcp.simple_echo import mcp
|
||||
from examples.mcpserver.simple_echo import mcp
|
||||
|
||||
async with Client(mcp) as client:
|
||||
result = await client.call_tool("echo", {"text": "hello"})
|
||||
assert len(result.content) == 1
|
||||
content = result.content[0]
|
||||
assert isinstance(content, TextContent)
|
||||
assert content.text == "hello"
|
||||
assert result == snapshot(
|
||||
CallToolResult(content=[TextContent(text="hello")], structured_content={"result": "hello"})
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_complex_inputs():
|
||||
"""Test the complex inputs server"""
|
||||
from examples.fastmcp.complex_inputs import mcp
|
||||
from examples.mcpserver.complex_inputs import mcp
|
||||
|
||||
async with Client(mcp) as client:
|
||||
tank = {"shrimp": [{"name": "bob"}, {"name": "alice"}]}
|
||||
result = await client.call_tool("name_shrimp", {"tank": tank, "extra_names": ["charlie"]})
|
||||
assert len(result.content) == 3
|
||||
assert isinstance(result.content[0], TextContent)
|
||||
assert isinstance(result.content[1], TextContent)
|
||||
assert isinstance(result.content[2], TextContent)
|
||||
assert result.content[0].text == "bob"
|
||||
assert result.content[1].text == "alice"
|
||||
assert result.content[2].text == "charlie"
|
||||
assert result == snapshot(
|
||||
CallToolResult(
|
||||
content=[
|
||||
TextContent(text="bob"),
|
||||
TextContent(text="alice"),
|
||||
TextContent(text="charlie"),
|
||||
],
|
||||
structured_content={"result": ["bob", "alice", "charlie"]},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
async def test_direct_call_tool_result_return():
|
||||
"""Test the CallToolResult echo server"""
|
||||
from examples.fastmcp.direct_call_tool_result_return import mcp
|
||||
from examples.mcpserver.direct_call_tool_result_return import mcp
|
||||
|
||||
async with Client(mcp) as client:
|
||||
result = await client.call_tool("echo", {"text": "hello"})
|
||||
assert len(result.content) == 1
|
||||
content = result.content[0]
|
||||
assert isinstance(content, TextContent)
|
||||
assert content.text == "hello"
|
||||
assert result.structured_content
|
||||
assert result.structured_content["text"] == "hello"
|
||||
assert isinstance(result.meta, dict)
|
||||
assert result.meta["some"] == "metadata"
|
||||
assert result == snapshot(
|
||||
CallToolResult(
|
||||
meta={"some": "metadata"}, # type: ignore[reportUnknownMemberType]
|
||||
content=[TextContent(text="hello")],
|
||||
structured_content={"text": "hello"},
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
@pytest.mark.anyio
|
||||
|
|
@ -70,15 +72,12 @@ async def test_desktop(monkeypatch: pytest.MonkeyPatch):
|
|||
monkeypatch.setattr(Path, "iterdir", lambda self: mock_files) # type: ignore[reportUnknownArgumentType]
|
||||
monkeypatch.setattr(Path, "home", lambda: Path("/fake/home"))
|
||||
|
||||
from examples.fastmcp.desktop import mcp
|
||||
from examples.mcpserver.desktop import mcp
|
||||
|
||||
async with Client(mcp) as client:
|
||||
# Test the sum function
|
||||
result = await client.call_tool("sum", {"a": 1, "b": 2})
|
||||
assert len(result.content) == 1
|
||||
content = result.content[0]
|
||||
assert isinstance(content, TextContent)
|
||||
assert content.text == "3"
|
||||
assert result == snapshot(CallToolResult(content=[TextContent(text="3")], structured_content={"result": 3}))
|
||||
|
||||
# Test the desktop resource
|
||||
result = await client.read_resource("dir://desktop")
|
||||
|
|
|
|||
Loading…
Reference in a new issue