mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-10 00:28:31 +00:00
fix: Resolve test failures in HTTP MCP support tests
1. Fragment filtering test: Added proper assertion for MCPToolWrapper call and verified the mock tool is returned in the result list. 2. Logger patching tests: Changed from patching instance method to patching class method to avoid Pydantic's __delattr__ restriction. This prevents AttributeError when the patch context manager tries to restore the original attribute. Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
@@ -149,13 +149,17 @@ class TestHTTPMCPFragmentFiltering:
|
|||||||
|
|
||||||
with patch.object(agent, '_get_mcp_tool_schemas', return_value=mock_schemas):
|
with patch.object(agent, '_get_mcp_tool_schemas', return_value=mock_schemas):
|
||||||
with patch('crewai.tools.mcp_tool_wrapper.MCPToolWrapper') as mock_wrapper_class:
|
with patch('crewai.tools.mcp_tool_wrapper.MCPToolWrapper') as mock_wrapper_class:
|
||||||
mock_wrapper_class.return_value = MagicMock()
|
mock_tool = MagicMock()
|
||||||
|
mock_wrapper_class.return_value = mock_tool
|
||||||
|
|
||||||
result = agent._get_external_mcp_tools("http://localhost:7365/mcp#specific_tool")
|
result = agent._get_external_mcp_tools("http://localhost:7365/mcp#specific_tool")
|
||||||
|
|
||||||
assert len(result) == 1
|
mock_wrapper_class.assert_called_once()
|
||||||
call_args = mock_wrapper_class.call_args
|
call_args = mock_wrapper_class.call_args
|
||||||
assert call_args.kwargs['tool_name'] == 'specific_tool'
|
assert call_args.kwargs['tool_name'] == 'specific_tool'
|
||||||
|
|
||||||
|
assert len(result) == 1
|
||||||
|
assert result[0] == mock_tool
|
||||||
|
|
||||||
|
|
||||||
class TestHTTPMCPWarningLog:
|
class TestHTTPMCPWarningLog:
|
||||||
@@ -171,13 +175,14 @@ class TestHTTPMCPWarningLog:
|
|||||||
)
|
)
|
||||||
|
|
||||||
log_calls = []
|
log_calls = []
|
||||||
original_log = agent._logger.log
|
logger_class = type(agent._logger)
|
||||||
|
original_log = logger_class.log
|
||||||
|
|
||||||
def mock_log(level, message):
|
def mock_log(self, level, message):
|
||||||
log_calls.append((level, message))
|
log_calls.append((level, message))
|
||||||
return original_log(level, message)
|
return original_log(self, level, message)
|
||||||
|
|
||||||
with patch.object(agent._logger, 'log', side_effect=mock_log):
|
with patch.object(logger_class, 'log', new=mock_log):
|
||||||
with patch.object(agent, '_get_mcp_tool_schemas', return_value={}):
|
with patch.object(agent, '_get_mcp_tool_schemas', return_value={}):
|
||||||
agent._get_external_mcp_tools("http://localhost:7365/mcp")
|
agent._get_external_mcp_tools("http://localhost:7365/mcp")
|
||||||
|
|
||||||
@@ -196,13 +201,14 @@ class TestHTTPMCPWarningLog:
|
|||||||
)
|
)
|
||||||
|
|
||||||
log_calls = []
|
log_calls = []
|
||||||
original_log = agent._logger.log
|
logger_class = type(agent._logger)
|
||||||
|
original_log = logger_class.log
|
||||||
|
|
||||||
def mock_log(level, message):
|
def mock_log(self, level, message):
|
||||||
log_calls.append((level, message))
|
log_calls.append((level, message))
|
||||||
return original_log(level, message)
|
return original_log(self, level, message)
|
||||||
|
|
||||||
with patch.object(agent._logger, 'log', side_effect=mock_log):
|
with patch.object(logger_class, 'log', new=mock_log):
|
||||||
with patch.object(agent, '_get_mcp_tool_schemas', return_value={}):
|
with patch.object(agent, '_get_mcp_tool_schemas', return_value={}):
|
||||||
agent._get_external_mcp_tools("https://api.example.com/mcp")
|
agent._get_external_mcp_tools("https://api.example.com/mcp")
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user