guide / tests /agent /test_memory.py
Saravanakumar R
openspec cma orchestration tests
2feb381
Raw
History Blame Contribute Delete
2.35 kB
"""
Unit tests for SessionMemory in src/agent/memory.py.
No external dependencies — pure in-memory dict operations.
Run: pytest tests/agent/test_memory.py
"""
from src.agent.memory import SessionMemory
# ---------------------------------------------------------------------------
# set / get
# ---------------------------------------------------------------------------
def test_set_and_get_string():
m = SessionMemory()
m.set("domain", "ecommerce")
assert m.get("domain") == "ecommerce"
def test_get_missing_key_returns_none():
m = SessionMemory()
assert m.get("missing") is None
def test_get_missing_key_with_default():
m = SessionMemory()
assert m.get("missing", "fallback") == "fallback"
def test_overwrite_existing_key():
m = SessionMemory()
m.set("domain", "ecommerce")
m.set("domain", "telecom")
assert m.get("domain") == "telecom"
# ---------------------------------------------------------------------------
# all() / delete()
# ---------------------------------------------------------------------------
def test_all_returns_all_pairs():
m = SessionMemory()
m.set("domain", "banking")
m.set("provider", "HDFC Bank")
result = m.all()
assert result == {"domain": "banking", "provider": "HDFC Bank"}
def test_all_returns_shallow_copy():
m = SessionMemory()
m.set("key", "val")
copy = m.all()
copy["key"] = "mutated"
assert m.get("key") == "val"
def test_delete_removes_key():
m = SessionMemory()
m.set("domain", "insurance")
m.delete("domain")
assert m.get("domain") is None
def test_delete_absent_key_is_noop():
m = SessionMemory()
m.delete("nonexistent") # must not raise
# ---------------------------------------------------------------------------
# Non-string value types
# ---------------------------------------------------------------------------
def test_store_list_value():
m = SessionMemory()
m.set("entities", ["ORG", "AMOUNT"])
assert m.get("entities") == ["ORG", "AMOUNT"]
def test_store_dict_value():
m = SessionMemory()
m.set("context", {"domain": "telecom", "prior_contact": True})
assert m.get("context") == {"domain": "telecom", "prior_contact": True}
def test_store_int_value():
m = SessionMemory()
m.set("count", 42)
assert m.get("count") == 42