fix: assign mocks post-init for remaining executor tests

Remove spec= from mocks and construct executors with defaults, then
assign mock agent/task/crew after init to avoid pydantic validation.
This commit is contained in:
Greyson LaLonde
2026-04-04 03:38:46 +08:00
parent a94c2bf786
commit c1f9d9270b
2 changed files with 11 additions and 18 deletions

View File

@@ -1142,32 +1142,29 @@ 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(spec=BaseAgent)
mock_agent = Mock()
mock_agent.key = "test_agent"
mock_agent.role = "tester"
mock_agent.verbose = False
mock_agent.fingerprint = None
mock_agent.tools_results = []
mock_task = Mock(spec=Task)
mock_task = Mock()
mock_task.name = "test"
mock_task.description = "test"
mock_task.id = "test-id"
return CrewAgentExecutor(
agent=mock_agent,
task=mock_task,
crew=Mock(spec=Crew),
executor = CrewAgentExecutor(
tools=structured_tools,
original_tools=tools,
)
executor.agent = mock_agent
executor.task = mock_task
return executor
def test_malformed_json_returns_parse_error(self) -> None:
"""Malformed JSON args must return a descriptive error, not silently become {}."""

View File

@@ -1041,32 +1041,28 @@ class TestAgentExecutorBackwardCompat:
def test_agent_executor_no_root_scope_when_memory_has_none(self) -> None:
"""Agent executor doesn't inject root_scope when memory has none."""
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.root_scope = None # No root_scope set
mock_memory.extract_memories.return_value = ["Fact A"]
mock_agent = MagicMock(spec=BaseAgent)
mock_agent = MagicMock()
mock_agent.memory = mock_memory
mock_agent._logger = MagicMock()
mock_agent.role = "Researcher"
mock_task = MagicMock(spec=Task)
mock_task = MagicMock()
mock_task.description = "Task"
mock_task.expected_output = "Output"
executor = BaseAgentExecutor(
crew=None,
agent=mock_agent,
task=mock_task,
)
executor = BaseAgentExecutor()
executor.agent = mock_agent
executor.task = mock_task
executor._save_to_memory(AgentFinish(thought="", output="R", text="R"))