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)