From 82ac176fdf66fe2d79a7ad0fe3ebb158ec52cfbc Mon Sep 17 00:00:00 2001 From: Jeremiah Lowin <153965+jlowin@users.noreply.github.com> Date: Wed, 30 Apr 2025 08:33:36 -0400 Subject: [PATCH] Add test --- tests/server/test_openapi.py | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/tests/server/test_openapi.py b/tests/server/test_openapi.py index 8b6e828d7..669e75ad3 100644 --- a/tests/server/test_openapi.py +++ b/tests/server/test_openapi.py @@ -14,7 +14,12 @@ from pydantic.networks import AnyUrl from fastmcp import FastMCP from fastmcp.client import Client -from fastmcp.server.openapi import FastMCPOpenAPI +from fastmcp.server.openapi import ( + FastMCPOpenAPI, + OpenAPIResource, + OpenAPIResourceTemplate, + OpenAPITool, +) class User(BaseModel): @@ -128,6 +133,30 @@ async def test_create_fastapi_server_classmethod(fastapi_app: FastAPI): assert server.name == "FastAPI App" +async def test_create_openapi_server_with_timeout( + fastapi_app: FastAPI, api_client: httpx.AsyncClient +): + server = FastMCPOpenAPI( + openapi_spec=fastapi_app.openapi(), + client=api_client, + name="Test App", + timeout=1.0, + ) + assert server._timeout == 1.0 + + for tool in (await server.get_tools()).values(): + assert isinstance(tool, OpenAPITool) + assert tool._timeout == 1.0 + + for resource in (await server.get_resources()).values(): + assert isinstance(resource, OpenAPIResource) + assert resource._timeout == 1.0 + + for template in (await server.get_resource_templates()).values(): + assert isinstance(template, OpenAPIResourceTemplate) + assert template._timeout == 1.0 + + class TestTools: async def test_list_tools(self, fastmcp_openapi_server: FastMCPOpenAPI): """