fix: add spec= to remaining mocks passed to pydantic models

This commit is contained in:
Greyson LaLonde
2026-04-04 03:12:21 +08:00
parent a3d25c661a
commit 206259b537
3 changed files with 24 additions and 11 deletions

View File

@@ -1142,18 +1142,21 @@ class TestNativeToolCallingJsonParseError:
def _make_executor(self, tools: list[BaseTool]) -> "CrewAgentExecutor":
"""Create a minimal CrewAgentExecutor with mocked dependencies."""
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.crew_agent_executor import CrewAgentExecutor
from crewai.crew import Crew
from crewai.task import Task
from crewai.tools.base_tool import to_langchain
structured_tools = to_langchain(tools)
mock_agent = Mock()
mock_agent = Mock(spec=BaseAgent)
mock_agent.key = "test_agent"
mock_agent.role = "tester"
mock_agent.verbose = False
mock_agent.fingerprint = None
mock_agent.tools_results = []
mock_task = Mock()
mock_task = Mock(spec=Task)
mock_task.name = "test"
mock_task.description = "test"
mock_task.id = "test-id"
@@ -1161,7 +1164,7 @@ class TestNativeToolCallingJsonParseError:
return CrewAgentExecutor(
agent=mock_agent,
task=mock_task,
crew=Mock(),
crew=Mock(spec=Crew),
tools=structured_tools,
original_tools=tools,
)

View File

@@ -523,10 +523,12 @@ class TestAgentScopeExtension:
def test_agent_save_extends_crew_root_scope(self) -> None:
"""Agent._save_to_memory extends crew's root_scope with agent info."""
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.agent_builder.base_agent_executor import (
BaseAgentExecutor,
)
from crewai.agents.parser import AgentFinish
from crewai.task import Task
from crewai.utilities.printer import Printer
mock_memory = MagicMock()
@@ -534,12 +536,12 @@ class TestAgentScopeExtension:
mock_memory.root_scope = "/crew/research-crew"
mock_memory.extract_memories.return_value = ["Fact A"]
mock_agent = MagicMock()
mock_agent = MagicMock(spec=BaseAgent)
mock_agent.memory = mock_memory
mock_agent._logger = MagicMock()
mock_agent.role = "Researcher"
mock_task = MagicMock()
mock_task = MagicMock(spec=Task)
mock_task.description = "Research task"
mock_task.expected_output = "Report"
@@ -557,10 +559,12 @@ class TestAgentScopeExtension:
def test_agent_save_sanitizes_role(self) -> None:
"""Agent role with special chars is sanitized for scope path."""
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.agent_builder.base_agent_executor import (
BaseAgentExecutor,
)
from crewai.agents.parser import AgentFinish
from crewai.task import Task
from crewai.utilities.printer import Printer
mock_memory = MagicMock()
@@ -568,12 +572,12 @@ class TestAgentScopeExtension:
mock_memory.root_scope = "/crew/test"
mock_memory.extract_memories.return_value = ["Fact"]
mock_agent = MagicMock()
mock_agent = MagicMock(spec=BaseAgent)
mock_agent.memory = mock_memory
mock_agent._logger = MagicMock()
mock_agent.role = "Senior Research Analyst #1"
mock_task = MagicMock()
mock_task = MagicMock(spec=Task)
mock_task.description = "Task"
mock_task.expected_output = "Output"

View File

@@ -315,19 +315,21 @@ def test_memory_extract_memories_empty_content_returns_empty_list(tmp_path: Path
def test_executor_save_to_memory_calls_extract_then_remember_per_item() -> None:
"""_save_to_memory calls memory.extract_memories(raw) then memory.remember(m) for each."""
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.agent_builder.base_agent_executor import BaseAgentExecutor
from crewai.agents.parser import AgentFinish
from crewai.task import Task
mock_memory = MagicMock()
mock_memory.read_only = False
mock_memory.extract_memories.return_value = ["Fact A.", "Fact B."]
mock_agent = MagicMock()
mock_agent = MagicMock(spec=BaseAgent)
mock_agent.memory = mock_memory
mock_agent._logger = MagicMock()
mock_agent.role = "Researcher"
mock_task = MagicMock()
mock_task = MagicMock(spec=Task)
mock_task.description = "Do research"
mock_task.expected_output = "A report"
@@ -349,16 +351,20 @@ def test_executor_save_to_memory_calls_extract_then_remember_per_item() -> None:
def test_executor_save_to_memory_skips_delegation_output() -> None:
"""_save_to_memory does nothing when output contains delegate action."""
from crewai.agents.agent_builder.base_agent import BaseAgent
from crewai.agents.agent_builder.base_agent_executor import BaseAgentExecutor
from crewai.agents.parser import AgentFinish
from crewai.task import Task
from crewai.utilities.string_utils import sanitize_tool_name
mock_memory = MagicMock()
mock_memory.read_only = False
mock_agent = MagicMock()
mock_agent = MagicMock(spec=BaseAgent)
mock_agent.memory = mock_memory
mock_agent._logger = MagicMock()
mock_task = MagicMock(description="Task", expected_output="Out")
mock_task = MagicMock(spec=Task)
mock_task.description = "Task"
mock_task.expected_output = "Out"
delegate_text = f"Action: {sanitize_tool_name('Delegate work to coworker')}"
full_text = delegate_text + " rest"