Fix CI test failures: regex pattern, mock patches, method signature

- Update regex pattern to handle Docker registry URLs with port numbers
- Fix mock patches to target correct import path (crewai_tools.CodeInterpreterTool)
- Fix integration test method signature for Crew._prepare_tools()
- All Docker image formats now validate correctly including my-registry.com:5000/python:latest

Co-Authored-By: João <joao@crewai.com>
This commit is contained in:
Devin AI
2025-06-02 18:29:16 +00:00
parent 45404537fd
commit 575d1c729d
3 changed files with 5 additions and 5 deletions

View File

@@ -130,7 +130,7 @@ class Agent(BaseAgent):
execution_image: Optional[str] = Field(
default=None,
description="Custom Docker image to use for code execution. If not specified, uses the default image.",
pattern=r"^[a-zA-Z0-9._/-]+(?::[a-zA-Z0-9._-]+)?$",
pattern=r"^[a-zA-Z0-9._/-]+(?:\:[0-9]+)?(?:/[a-zA-Z0-9._/-]+)*(?:\:[a-zA-Z0-9._-]+)?$",
)
reasoning: bool = Field(
default=False,

View File

@@ -29,7 +29,7 @@ def test_agent_without_custom_execution_image():
assert agent.execution_image is None
@patch('crewai.agent.CodeInterpreterTool')
@patch('crewai_tools.CodeInterpreterTool')
def test_get_code_execution_tools_with_custom_image(mock_code_interpreter):
"""Test that get_code_execution_tools passes custom image to CodeInterpreterTool."""
agent = Agent(
@@ -48,7 +48,7 @@ def test_get_code_execution_tools_with_custom_image(mock_code_interpreter):
)
@patch('crewai.agent.CodeInterpreterTool')
@patch('crewai_tools.CodeInterpreterTool')
def test_get_code_execution_tools_without_custom_image(mock_code_interpreter):
"""Test that get_code_execution_tools works without custom image."""
agent = Agent(
@@ -63,7 +63,7 @@ def test_get_code_execution_tools_without_custom_image(mock_code_interpreter):
mock_code_interpreter.assert_called_once_with(unsafe_mode=False)
@patch('crewai.agent.CodeInterpreterTool')
@patch('crewai_tools.CodeInterpreterTool')
def test_get_code_execution_tools_with_unsafe_mode_and_custom_image(mock_code_interpreter):
"""Test that both unsafe_mode and custom image work together."""
agent = Agent(

View File

@@ -27,7 +27,7 @@ def test_crew_with_custom_execution_image_integration(mock_code_interpreter_clas
tasks=[task]
)
crew._prepare_tools(task, agent)
crew._prepare_tools(agent, task, [])
mock_code_interpreter_class.assert_called_with(
unsafe_mode=False,