Mendu9
feat: initial commit — core utilities (token counter, PII scrubber, retry, query cache)
7c174ec | import time | |
| import pytest | |
| from mao.core.query_cache import QueryCache | |
| def test_miss_returns_none(): | |
| cache = QueryCache(ttl=60) | |
| assert cache.get("abc123") is None | |
| def test_hit_returns_value(): | |
| cache = QueryCache(ttl=60) | |
| cache.set("abc123", {"docs": ["a", "b"]}) | |
| result = cache.get("abc123") | |
| assert result == {"docs": ["a", "b"]} | |
| def test_ttl_expiry(): | |
| cache = QueryCache(ttl=1) | |
| cache.set("key1", "value") | |
| time.sleep(1.1) | |
| assert cache.get("key1") is None | |
| def test_cache_key_from_embedding(): | |
| cache = QueryCache(ttl=60) | |
| embedding = [0.1, 0.2, 0.3] | |
| key = cache.make_key(embedding) | |
| assert isinstance(key, str) | |
| assert len(key) == 64 # sha256 hex | |
| def test_cache_key_deterministic(): | |
| cache = QueryCache(ttl=60) | |
| embedding = [0.1, 0.2, 0.3] | |
| assert cache.make_key(embedding) == cache.make_key(embedding) | |