mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-09 08:08:32 +00:00
54 lines
1.7 KiB
Python
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"
|