fix: Handle no-crew case in reset-memories command

- Modify RAGStorage to handle initialization without crew
- Add test for resetting memories without crew
- Fixes #2123

Co-Authored-By: Joe Moura <joao@crewai.com>
This commit is contained in:
Devin AI
2025-02-13 19:06:27 +00:00
parent 1b488b6da7
commit c6ffdc160b
3 changed files with 48 additions and 8 deletions

View File

@@ -65,6 +65,33 @@ def test_reset_all_memories(mock_get_crew, runner):
assert result.output == "All memories have been reset.\n"
@mock.patch("crewai.cli.reset_memories_command.get_crew")
@mock.patch("crewai.cli.reset_memories_command.ShortTermMemory")
@mock.patch("crewai.cli.reset_memories_command.EntityMemory")
@mock.patch("crewai.cli.reset_memories_command.LongTermMemory")
@mock.patch("crewai.cli.reset_memories_command.TaskOutputStorageHandler")
@mock.patch("crewai.cli.reset_memories_command.KnowledgeStorage")
def test_reset_all_memories_no_crew(
MockKnowledgeStorage,
MockTaskOutputStorageHandler,
MockLongTermMemory,
MockEntityMemory,
MockShortTermMemory,
mock_get_crew,
runner,
):
mock_get_crew.return_value = None
result = runner.invoke(reset_memories, ["-a"])
MockShortTermMemory().reset.assert_called_once()
MockEntityMemory().reset.assert_called_once()
MockLongTermMemory().reset.assert_called_once()
MockTaskOutputStorageHandler().reset.assert_called_once()
MockKnowledgeStorage().reset.assert_called_once()
assert result.output == "All memories have been reset.\n"
assert result.exit_code == 0
@mock.patch("crewai.cli.reset_memories_command.get_crew")
def test_reset_short_term_memories(mock_get_crew, runner):
mock_crew = mock.Mock()