Spaces:
Sleeping
Sleeping
| """ | |
| 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 | |