from __future__ import annotations from teamlandkarte_mcp.cache.query_cache import QueryCache def test_query_cache_hit_miss_behavior() -> None: cache: QueryCache[int] = QueryCache(ttl_hours=12, max_size=10) calls = {"n": 0} def fetch() -> int: calls["n"] += 1 return 123 assert cache.get_or_fetch("k", fetch) == 123 assert cache.stats["misses"] == 1 assert cache.stats["hits"] == 0 assert calls["n"] == 1 assert cache.get_or_fetch("k", fetch) == 123 assert cache.stats["hits"] == 1 assert calls["n"] == 1