mirror of
https://github.com/crewAIInc/crewAI.git
synced 2026-01-06 06:38:29 +00:00
* Fix Mem0 OSS * add test * fix lint and tests * fix * add tests * drop test * changed to class comparision * fixed test cases * Update src/crewai/memory/storage/mem0_storage.py * Update src/crewai/memory/storage/mem0_storage.py * fix * fix lock file --------- Co-authored-by: Vidit-Ostwal <viditostwal@gmail.com>
68 lines
2.0 KiB
Python
68 lines
2.0 KiB
Python
from unittest.mock import MagicMock, patch
|
|
|
|
import pytest
|
|
from mem0.memory.main import Memory
|
|
|
|
from crewai.memory.user.user_memory import UserMemory
|
|
from crewai.memory.user.user_memory_item import UserMemoryItem
|
|
|
|
|
|
class MockCrew:
|
|
def __init__(self, memory_config):
|
|
self.memory_config = memory_config
|
|
|
|
@pytest.fixture
|
|
def user_memory():
|
|
"""Fixture to create a UserMemory instance"""
|
|
crew = MockCrew(
|
|
memory_config={
|
|
"provider": "mem0",
|
|
"config": {"user_id": "john"},
|
|
"user_memory" : {}
|
|
}
|
|
)
|
|
|
|
user_memory = MagicMock(spec=UserMemory)
|
|
|
|
with patch.object(Memory,'__new__',return_value=user_memory):
|
|
user_memory_instance = UserMemory(crew=crew)
|
|
|
|
return user_memory_instance
|
|
|
|
def test_save_and_search(user_memory):
|
|
memory = UserMemoryItem(
|
|
data="""test value test value test value test value test value test value
|
|
test value test value test value test value test value test value
|
|
test value test value test value test value test value test value""",
|
|
user="test_user",
|
|
metadata={"task": "test_task"},
|
|
)
|
|
|
|
with patch.object(UserMemory, "save") as mock_save:
|
|
user_memory.save(
|
|
value=memory.data,
|
|
metadata=memory.metadata,
|
|
user=memory.user
|
|
)
|
|
|
|
mock_save.assert_called_once_with(
|
|
value=memory.data,
|
|
metadata=memory.metadata,
|
|
user=memory.user
|
|
)
|
|
|
|
expected_result = [
|
|
{
|
|
"context": memory.data,
|
|
"metadata": {"agent": "test_agent"},
|
|
"score": 0.95,
|
|
}
|
|
]
|
|
expected_result = ["mocked_result"]
|
|
|
|
# Use patch.object to mock UserMemory's search method
|
|
with patch.object(UserMemory, 'search', return_value=expected_result) as mock_search:
|
|
find = UserMemory.search("test value", score_threshold=0.01)[0]
|
|
mock_search.assert_called_once_with("test value", score_threshold=0.01)
|
|
assert find == expected_result[0]
|