Spaces:
Sleeping
Sleeping
| import pytest | |
| from src.config import COLLECTION_NAME, VECTOR_DB_PERSIST_PATH | |
| from src.embedding.embedding_service import EmbeddingService | |
| from src.search.search_service import SearchService | |
| from src.vector_store.vector_db import VectorDatabase | |
| def test_search_cache_basic(): | |
| vdb = VectorDatabase(VECTOR_DB_PERSIST_PATH, COLLECTION_NAME) | |
| emb = EmbeddingService() | |
| svc = SearchService(vdb, emb) | |
| q = "remote work policy" | |
| r1 = svc.search(q, top_k=3) | |
| stats_after_first = svc.get_cache_stats() | |
| r2 = svc.search(q, top_k=3) | |
| stats_after_second = svc.get_cache_stats() | |
| assert r1 == r2 | |
| # After first search: one miss | |
| assert stats_after_first["misses"] >= 1 | |
| # After second search: at least one hit | |
| assert stats_after_second["hits"] >= 1 | |
| def test_search_cache_eviction(): | |
| vdb = VectorDatabase(VECTOR_DB_PERSIST_PATH, COLLECTION_NAME) | |
| emb = EmbeddingService() | |
| svc = SearchService(vdb, emb) | |
| for i in range(60): | |
| svc.search(f"query {i}", top_k=1) | |
| stats = svc.get_cache_stats() | |
| assert stats["size"] <= stats["capacity"] | |