Files
crewAI/tests/memory/long_term_memory_test.py
2025-03-04 20:23:51 +00:00

54 lines
1.7 KiB
Python

import pytest
from crewai.memory.long_term.long_term_memory import LongTermMemory
from crewai.memory.long_term.long_term_memory_item import LongTermMemoryItem
@pytest.fixture
def long_term_memory():
"""Fixture to create a LongTermMemory instance"""
# Create a mock storage for testing
from crewai.memory.storage.interface import Storage
class MockStorage(Storage):
def __init__(self):
self.data = []
def save(self, value, metadata):
self.data.append({"value": value, "metadata": metadata})
def search(self, query, limit=3, score_threshold=0.35):
return [
{
"context": item["value"],
"metadata": item["metadata"],
"score": 0.5,
"datetime": item["metadata"].get("datetime", "test_datetime")
}
for item in self.data
]
def reset(self):
self.data = []
return LongTermMemory(storage=MockStorage())
def test_save_and_search(long_term_memory):
memory = LongTermMemoryItem(
agent="test_agent",
task="test_task",
expected_output="test_output",
datetime="test_datetime",
quality=0.5,
metadata={"task": "test_task", "quality": 0.5},
)
long_term_memory.save(memory)
find = long_term_memory.search(query="test_task", limit=5)[0]
assert find["score"] == 0.5
assert find["datetime"] == "test_datetime"
assert find["metadata"]["agent"] == "test_agent"
assert find["metadata"]["quality"] == 0.5
assert find["metadata"]["task"] == "test_task"
assert find["metadata"]["expected_output"] == "test_output"