Files
odysseus/tests/test_memory_imports.py

57 lines
2.0 KiB
Python

"""Regression tests for memory import-path compatibility."""
def test_services_memory_manager_is_canonical_src_class():
from services.memory import MemoryManager as package_manager
from services.memory.memory import MemoryManager as module_manager
from src.memory import MemoryManager as canonical_manager
assert module_manager is canonical_manager
assert package_manager is canonical_manager
assert hasattr(package_manager, "increment_uses")
assert hasattr(package_manager, "claim_ownerless")
def test_services_memory_vector_is_canonical_src_class():
from services.memory import MemoryVectorStore as package_vector_store
from services.memory.memory_vector import MemoryVectorStore as module_vector_store
from src.memory_vector import MemoryVectorStore as canonical_vector_store
assert module_vector_store is canonical_vector_store
assert package_vector_store is canonical_vector_store
def test_memory_service_uses_canonical_manager_api(tmp_path):
import asyncio
from services.memory import MemoryService
service = MemoryService(str(tmp_path))
remembered = asyncio.run(service.remember("User prefers dark mode", session_id="sess-1"))
assert remembered.text == "User prefers dark mode"
assert remembered.session_id == "sess-1"
all_memories = service.get_all()
assert [m.id for m in all_memories] == [remembered.id]
recalled = asyncio.run(service.recall("dark mode", top_k=5))
assert [m.id for m in recalled.memories] == [remembered.id]
assert service.delete(remembered.id) is True
assert service.delete(remembered.id) is False
assert service.get_all() == []
def test_canonical_manager_keeps_ownerless_claim_helper(tmp_path):
from src.memory import MemoryManager
manager = MemoryManager(str(tmp_path))
entry = manager.add_entry("User likes compact code reviews")
manager.save([entry])
manager.claim_ownerless("alice")
memories = manager.load_all()
assert memories[0]["owner"] == "alice"