From 0b09fa59447f7883ba46ceb2aef90454bc7bac97 Mon Sep 17 00:00:00 2001 From: David Soria Parra Date: Thu, 19 Dec 2024 23:19:41 +0000 Subject: [PATCH] fix type issues --- src/mcp/server/fastmcp/resources/types.py | 1 + tests/test_examples.py | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/mcp/server/fastmcp/resources/types.py b/src/mcp/server/fastmcp/resources/types.py index 97de7c2..79acf27 100644 --- a/src/mcp/server/fastmcp/resources/types.py +++ b/src/mcp/server/fastmcp/resources/types.py @@ -6,6 +6,7 @@ from pathlib import Path from typing import Any import anyio +import anyio.to_thread import httpx import pydantic.json import pydantic_core diff --git a/tests/test_examples.py b/tests/test_examples.py index ea8a256..62cd18c 100644 --- a/tests/test_examples.py +++ b/tests/test_examples.py @@ -5,6 +5,7 @@ import pytest from mcp.shared.memory import ( create_connected_server_and_client_session as client_session, ) +from mcp.types import TextContent @pytest.mark.anyio @@ -16,6 +17,7 @@ async def test_simple_echo(): 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" @@ -30,6 +32,9 @@ async def test_complex_inputs(): "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" @@ -38,6 +43,8 @@ async def test_complex_inputs(): @pytest.mark.anyio async def test_desktop(): """Test the desktop server""" + from pydantic import AnyUrl + from examples.fastmcp.desktop import mcp async with client_session(mcp._mcp_server) as client: @@ -45,10 +52,12 @@ async def test_desktop(): 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" # Test the desktop resource - result = await client.read_resource("dir://desktop") + result = await client.read_resource(AnyUrl("dir://desktop")) assert len(result.contents) == 1 content = result.contents[0] + assert isinstance(content, TextContent) assert isinstance(content.text, str)