From f92abd446fc35c36267335993add56b2af150ff8 Mon Sep 17 00:00:00 2001 From: Alain IVARS Date: Sat, 3 May 2025 16:39:35 +0100 Subject: [PATCH] Fix remark to use the fastmcp Client. --- tests/test_examples.py | 85 +++++++++++++++++++----------------------- 1 file changed, 39 insertions(+), 46 deletions(-) diff --git a/tests/test_examples.py b/tests/test_examples.py index b91f3a5d0..a6d20cbc1 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -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"