24 lines
767 B
Python
24 lines
767 B
Python
from app.public_cache import PublicResponseCache
|
|
|
|
|
|
def test_cache_copies_values_and_invalidates() -> None:
|
|
cache = PublicResponseCache()
|
|
original = [{"score": 10}]
|
|
cache.set(("activity",), original)
|
|
original[0]["score"] = 99
|
|
assert cache.get(("activity",), 20) == [{"score": 10}]
|
|
cache.invalidate()
|
|
assert cache.get(("activity",), 20) is None
|
|
|
|
|
|
def test_cache_bounds_memory_and_rejects_result_started_before_invalidation() -> None:
|
|
cache = PublicResponseCache(max_entries=2)
|
|
generation = cache.generation()
|
|
cache.set((1,), [1])
|
|
cache.set((2,), [2])
|
|
cache.set((3,), [3])
|
|
assert cache.get((1,), 20) is None
|
|
cache.invalidate()
|
|
cache.set((4,), [4], generation=generation)
|
|
assert cache.get((4,), 20) is None
|