This commit is contained in:
36
tests/test_competitor_intel_cache.py
Normal file
36
tests/test_competitor_intel_cache.py
Normal file
@@ -0,0 +1,36 @@
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def test_competitor_intel_cache_reuses_memory_and_shared_file(tmp_path, monkeypatch):
|
||||
from services import competitor_intel_repository as repo
|
||||
|
||||
monkeypatch.setattr(repo, "_CACHE_FILE", Path(tmp_path) / "competitor_intel_cache.pkl")
|
||||
repo._MEM_CACHE.clear()
|
||||
|
||||
calls = {"count": 0}
|
||||
|
||||
def producer():
|
||||
calls["count"] += 1
|
||||
return {"valid_matches": 7, "match_rate": 0.1}
|
||||
|
||||
first = repo._cached_payload("coverage:test", producer, ttl_seconds=60)
|
||||
second = repo._cached_payload("coverage:test", producer, ttl_seconds=60)
|
||||
repo._MEM_CACHE.clear()
|
||||
third = repo._cached_payload("coverage:test", producer, ttl_seconds=60)
|
||||
|
||||
assert first == second == third == {"valid_matches": 7, "match_rate": 0.1}
|
||||
assert calls["count"] == 1
|
||||
|
||||
|
||||
def test_clear_competitor_intel_cache_removes_shared_file(tmp_path, monkeypatch):
|
||||
from services import competitor_intel_repository as repo
|
||||
|
||||
cache_file = Path(tmp_path) / "competitor_intel_cache.pkl"
|
||||
monkeypatch.setattr(repo, "_CACHE_FILE", cache_file)
|
||||
repo._MEM_CACHE["x"] = {"time": 1, "value": {"ok": True}}
|
||||
cache_file.write_bytes(b"stale")
|
||||
|
||||
repo.clear_competitor_intel_cache()
|
||||
|
||||
assert repo._MEM_CACHE == {}
|
||||
assert not cache_file.exists()
|
||||
Reference in New Issue
Block a user