File size: 871 Bytes
7c174ec | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | 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)
|