28 lines
1006 B
Python
28 lines
1006 B
Python
from memabra.memory_store import InMemoryMemoryStore, MemoryRecord, MemorySource
|
|
from memabra.schemas import SchemaRegistry
|
|
|
|
|
|
def test_memory_store_verify_and_revoke_round_trip():
|
|
store = InMemoryMemoryStore()
|
|
record = MemoryRecord(
|
|
id="mem-pref-1",
|
|
memory_type="semantic",
|
|
fact_status="assumed",
|
|
content="User prefers plain text on Telegram.",
|
|
summary="Telegram plain-text preference",
|
|
source=MemorySource(kind="user", ref="session-1"),
|
|
confidence=0.9,
|
|
)
|
|
store.upsert(record)
|
|
store.verify("mem-pref-1", status="confirmed", check_method="user-confirmed")
|
|
store.mark_used("mem-pref-1")
|
|
store.revoke("mem-pref-1", reason="User changed preference")
|
|
|
|
updated = store.get("mem-pref-1")
|
|
assert updated is not None
|
|
assert updated.verification.status == "confirmed"
|
|
assert updated.last_used_at is not None
|
|
assert updated.fact_status == "revoked"
|
|
|
|
SchemaRegistry().validate_memory_record(updated.to_dict())
|