mirror of
https://github.com/crewAIInc/crewAI.git
synced 2025-12-16 04:18:35 +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('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")
|
||||
|
||||
assert len(result) == 1
|
||||
mock_wrapper_class.assert_called_once()
|
||||
call_args = mock_wrapper_class.call_args
|
||||
assert call_args.kwargs['tool_name'] == 'specific_tool'
|
||||
|
||||
assert len(result) == 1
|
||||
assert result[0] == mock_tool
|
||||
|
||||
|
||||
class TestHTTPMCPWarningLog:
|
||||
@@ -171,13 +175,14 @@ class TestHTTPMCPWarningLog:
|
||||
)
|
||||
|
||||
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))
|
||||
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={}):
|
||||
agent._get_external_mcp_tools("http://localhost:7365/mcp")
|
||||
|
||||
@@ -196,13 +201,14 @@ class TestHTTPMCPWarningLog:
|
||||
)
|
||||
|
||||
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))
|
||||
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={}):
|
||||
agent._get_external_mcp_tools("https://api.example.com/mcp")
|
||||
|
||||
|
||||
Reference in New Issue
Block a user