Fix remark to use the fastmcp Client.

This commit is contained in:
Alain IVARS 2025-05-03 16:39:35 +01:00
commit f92abd446f

View file

@ -1,9 +1,6 @@
"""Tests for example servers"""
import pytest
from mcp.shared.memory import (
create_connected_server_and_client_session as client_session,
)
from mcp.types import (
PromptMessage,
TextContent,
@ -11,18 +8,19 @@ from mcp.types import (
)
from pydantic import AnyUrl
from fastmcp import Client
@pytest.mark.anyio
async def test_simple_echo():
"""Test the simple echo server"""
from examples.simple_echo import mcp
async with client_session(mcp._mcp_server) as client:
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 len(result) == 1
assert isinstance(result[0], TextContent)
assert result[0].text == "hello"
@pytest.mark.anyio
@ -30,14 +28,14 @@ async def test_complex_inputs():
"""Test the complex inputs server"""
from examples.complex_inputs import mcp
async with client_session(mcp._mcp_server) as client:
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) == 1
assert isinstance(result.content[0], TextContent)
assert result.content[0].text == '[\n "bob",\n "alice",\n "charlie"\n]'
assert len(result) == 1
assert isinstance(result[0], TextContent)
assert result[0].text == '[\n "bob",\n "alice",\n "charlie"\n]'
@pytest.mark.anyio
@ -45,21 +43,19 @@ async def test_desktop(monkeypatch):
"""Test the desktop server"""
from examples.desktop import mcp
async with client_session(mcp._mcp_server) as client:
async with Client(mcp) as client:
# Test the add function
result = await client.call_tool("add", {"a": 1, "b": 2})
assert len(result.content) == 1
content = result.content[0]
assert isinstance(content, TextContent)
assert content.text == "3"
assert len(result) == 1
assert isinstance(result[0], TextContent)
assert result[0].text == "3"
async with client_session(mcp._mcp_server) as client:
async with Client(mcp) as client:
result = await client.read_resource(AnyUrl("greeting://rooter12"))
assert len(result.contents) == 1
content = result.contents[0]
assert isinstance(content, TextResourceContents)
assert isinstance(content.text, str)
assert content.text == "Hello, rooter12!"
assert len(result) == 1
assert isinstance(result[0], TextResourceContents)
assert isinstance(result[0].text, str)
assert result[0].text == "Hello, rooter12!"
@pytest.mark.anyio
@ -67,33 +63,30 @@ async def test_echo():
"""Test the echo server"""
from examples.echo import mcp
async with client_session(mcp._mcp_server) as client:
async with Client(mcp) as client:
result = await client.call_tool("echo_tool", {"text": "hello"})
assert len(result.content) == 1
content = result.content[0]
assert isinstance(content, TextContent)
assert content.text == "hello"
assert len(result) == 1
assert isinstance(result[0], TextContent)
assert result[0].text == "hello"
async with client_session(mcp._mcp_server) as client:
async with Client(mcp) as client:
result = await client.read_resource(AnyUrl("echo://static"))
assert len(result.contents) == 1
content = result.contents[0]
assert isinstance(content, TextResourceContents)
assert isinstance(content.text, str)
assert content.text == "Echo!"
assert len(result) == 1
assert isinstance(result[0], TextResourceContents)
assert isinstance(result[0].text, str)
assert result[0].text == "Echo!"
async with client_session(mcp._mcp_server) as client:
async with Client(mcp) as client:
result = await client.read_resource(AnyUrl("echo://server42"))
assert len(result.contents) == 1
content = result.contents[0]
assert isinstance(content, TextResourceContents)
assert isinstance(content.text, str)
assert content.text == "Echo: server42"
assert len(result) == 1
assert isinstance(result[0], TextResourceContents)
assert isinstance(result[0].text, str)
assert result[0].text == "Echo: server42"
async with client_session(mcp._mcp_server) as client:
async with Client(mcp) as client:
result = await client.get_prompt("echo", {"text": "hello"})
assert len(result.messages) == 1
assert isinstance(content, TextResourceContents)
assert isinstance(result.messages[0], PromptMessage)
assert isinstance(result.messages[0].content, TextContent)
assert result.messages[0].content.text == "hello"
assert len(result) == 1
assert isinstance(result[0], PromptMessage)
assert isinstance(result[0].content, TextContent)
assert isinstance(result[0].content.text, str)
assert result[0].content.text == "hello"