@@ -76,7 +76,7 @@ def test_mcp_client():
7676
7777 sse_mcp_client = MCPClient (lambda : sse_client ("http://127.0.0.1:8000/sse" ))
7878 stdio_mcp_client = MCPClient (
79- lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/echo_server.py" ]))
79+ lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/mcp/ echo_server.py" ]))
8080 )
8181
8282 with sse_mcp_client , stdio_mcp_client :
@@ -150,19 +150,19 @@ def test_mcp_client():
150150
151151 # With the new MCPToolResult, structured content is in its own field
152152 assert "structuredContent" in result
153- assert result ["structuredContent" ][ "result" ] == {"echoed" : "STRUCTURED_DATA_TEST" }
153+ assert result ["structuredContent" ] == {"echoed" : "STRUCTURED_DATA_TEST" , "message_length" : 20 }
154154
155155 # Verify the result is an MCPToolResult (at runtime it's just a dict, but type-wise it should be MCPToolResult)
156156 assert result ["status" ] == "success"
157157 assert result ["toolUseId" ] == tool_use_id
158158
159159 assert len (result ["content" ]) == 1
160- assert json .loads (result ["content" ][0 ]["text" ]) == {"echoed" : "STRUCTURED_DATA_TEST" }
160+ assert json .loads (result ["content" ][0 ]["text" ]) == {"echoed" : "STRUCTURED_DATA_TEST" , "message_length" : 20 }
161161
162162
163163def test_can_reuse_mcp_client ():
164164 stdio_mcp_client = MCPClient (
165- lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/echo_server.py" ]))
165+ lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/mcp/ echo_server.py" ]))
166166 )
167167 with stdio_mcp_client :
168168 stdio_mcp_client .list_tools_sync ()
@@ -185,7 +185,7 @@ async def test_mcp_client_async_structured_content():
185185 that appears in structuredContent field.
186186 """
187187 stdio_mcp_client = MCPClient (
188- lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/echo_server.py" ]))
188+ lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/mcp/ echo_server.py" ]))
189189 )
190190
191191 with stdio_mcp_client :
@@ -200,20 +200,20 @@ async def test_mcp_client_async_structured_content():
200200 assert "structuredContent" in result
201201 # "result" nesting is not part of the MCP Structured Content specification,
202202 # but rather a FastMCP implementation detail
203- assert result ["structuredContent" ][ "result" ] == {"echoed" : "ASYNC_STRUCTURED_TEST" }
203+ assert result ["structuredContent" ] == {"echoed" : "ASYNC_STRUCTURED_TEST" , "message_length" : 21 }
204204
205205 # Verify basic MCPToolResult structure
206206 assert result ["status" ] in ["success" , "error" ]
207207 assert result ["toolUseId" ] == tool_use_id
208208
209209 assert len (result ["content" ]) == 1
210- assert json .loads (result ["content" ][0 ]["text" ]) == {"echoed" : "ASYNC_STRUCTURED_TEST" }
210+ assert json .loads (result ["content" ][0 ]["text" ]) == {"echoed" : "ASYNC_STRUCTURED_TEST" , "message_length" : 21 }
211211
212212
213213def test_mcp_client_without_structured_content ():
214214 """Test that MCP client works correctly when tools don't return structured content."""
215215 stdio_mcp_client = MCPClient (
216- lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/echo_server.py" ]))
216+ lambda : stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/mcp/ echo_server.py" ]))
217217 )
218218
219219 with stdio_mcp_client :
@@ -279,7 +279,7 @@ def test_mcp_client_timeout_integration():
279279
280280 def slow_transport ():
281281 time .sleep (4 ) # Longer than timeout
282- return stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/echo_server.py" ]))
282+ return stdio_client (StdioServerParameters (command = "python" , args = ["tests_integ/mcp/ echo_server.py" ]))
283283
284284 client = MCPClient (slow_transport , startup_timeout = 2 )
285285 initial_threads = threading .active_count ()
0 commit comments