Skip to content

Commit 86c5f20

Browse files
committed
ref: streamline imports and remove unused mock classes in fastmcp tests
1 parent 3356ff2 commit 86c5f20

File tree

1 file changed

+11
-52
lines changed

1 file changed

+11
-52
lines changed

tests/integrations/fastmcp/test_fastmcp.py

Lines changed: 11 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
accurate testing of the integration's behavior in real MCP Server scenarios.
2222
"""
2323

24+
import asyncio
25+
import json
2426
import pytest
2527
from unittest import mock
2628

@@ -60,6 +62,15 @@ async def __call__(self, *args, **kwargs):
6062
except ImportError:
6163
request_ctx = None
6264

65+
# Try to import MCP types for helper functions
66+
try:
67+
from mcp.types import CallToolRequest, GetPromptRequest, ReadResourceRequest
68+
except ImportError:
69+
# If mcp.types not available, tests will be skipped anyway
70+
CallToolRequest = None
71+
GetPromptRequest = None
72+
ReadResourceRequest = None
73+
6374

6475
# Collect available FastMCP implementations for parametrization
6576
fastmcp_implementations = []
@@ -88,10 +99,6 @@ def call_tool_through_mcp(mcp_instance, tool_name, arguments):
8899
Returns:
89100
The tool result normalized to {"result": value} format
90101
"""
91-
import asyncio
92-
import json
93-
from mcp.types import CallToolRequest
94-
95102
handler = mcp_instance._mcp_server.request_handlers[CallToolRequest]
96103
request = CallToolRequest(
97104
method="tools/call", params={"name": tool_name, "arguments": arguments}
@@ -129,9 +136,6 @@ def call_tool_through_mcp(mcp_instance, tool_name, arguments):
129136

130137
async def call_tool_through_mcp_async(mcp_instance, tool_name, arguments):
131138
"""Async version of call_tool_through_mcp."""
132-
import json
133-
from mcp.types import CallToolRequest
134-
135139
handler = mcp_instance._mcp_server.request_handlers[CallToolRequest]
136140
request = CallToolRequest(
137141
method="tools/call", params={"name": tool_name, "arguments": arguments}
@@ -169,9 +173,6 @@ async def call_tool_through_mcp_async(mcp_instance, tool_name, arguments):
169173

170174
def call_prompt_through_mcp(mcp_instance, prompt_name, arguments=None):
171175
"""Call a prompt through MCP Server's low-level handler."""
172-
import asyncio
173-
from mcp.types import GetPromptRequest
174-
175176
handler = mcp_instance._mcp_server.request_handlers[GetPromptRequest]
176177
request = GetPromptRequest(
177178
method="prompts/get", params={"name": prompt_name, "arguments": arguments or {}}
@@ -185,8 +186,6 @@ def call_prompt_through_mcp(mcp_instance, prompt_name, arguments=None):
185186

186187
async def call_prompt_through_mcp_async(mcp_instance, prompt_name, arguments=None):
187188
"""Async version of call_prompt_through_mcp."""
188-
from mcp.types import GetPromptRequest
189-
190189
handler = mcp_instance._mcp_server.request_handlers[GetPromptRequest]
191190
request = GetPromptRequest(
192191
method="prompts/get", params={"name": prompt_name, "arguments": arguments or {}}
@@ -200,9 +199,6 @@ async def call_prompt_through_mcp_async(mcp_instance, prompt_name, arguments=Non
200199

201200
def call_resource_through_mcp(mcp_instance, uri):
202201
"""Call a resource through MCP Server's low-level handler."""
203-
import asyncio
204-
from mcp.types import ReadResourceRequest
205-
206202
handler = mcp_instance._mcp_server.request_handlers[ReadResourceRequest]
207203
request = ReadResourceRequest(method="resources/read", params={"uri": str(uri)})
208204

@@ -214,8 +210,6 @@ def call_resource_through_mcp(mcp_instance, uri):
214210

215211
async def call_resource_through_mcp_async(mcp_instance, uri):
216212
"""Async version of call_resource_through_mcp."""
217-
from mcp.types import ReadResourceRequest
218-
219213
handler = mcp_instance._mcp_server.request_handlers[ReadResourceRequest]
220214
request = ReadResourceRequest(method="resources/read", params={"uri": str(uri)})
221215

@@ -251,19 +245,6 @@ def reset_request_ctx():
251245
pass
252246

253247

254-
# Mock classes for testing
255-
class MockURI:
256-
"""Mock URI object for resource testing"""
257-
258-
def __init__(self, uri_string):
259-
self.scheme = uri_string.split("://")[0] if "://" in uri_string else ""
260-
self.path = uri_string.split("://")[1] if "://" in uri_string else uri_string
261-
self._uri_string = uri_string
262-
263-
def __str__(self):
264-
return self._uri_string
265-
266-
267248
class MockRequestContext:
268249
"""Mock MCP request context"""
269250

@@ -292,28 +273,6 @@ def __init__(self, session_id=None, transport="http"):
292273
self.headers["mcp-session-id"] = session_id
293274

294275

295-
class MockTextContent:
296-
"""Mock TextContent object"""
297-
298-
def __init__(self, text):
299-
self.text = text
300-
301-
302-
class MockPromptMessage:
303-
"""Mock PromptMessage object"""
304-
305-
def __init__(self, role, content_text):
306-
self.role = role
307-
self.content = MockTextContent(content_text)
308-
309-
310-
class MockGetPromptResult:
311-
"""Mock GetPromptResult object"""
312-
313-
def __init__(self, messages):
314-
self.messages = messages
315-
316-
317276
# =============================================================================
318277
# Tool Handler Tests - Verifying Sentry Integration
319278
# =============================================================================

0 commit comments

Comments
 (0)