mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-04-30 23:02:50 +00:00
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:
@@ -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 {}."""
|
||||
|
||||
@@ -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"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user