Spaces:
Running
Running
| """Cache stores raw answers; upsell layer is session-specific.""" | |
| from app.services.pipeline.cache import CachedAnswer, cache_get, cache_key, cache_set, invalidate_book_cache | |
| def test_cache_stores_raw_answer_not_formatted_response(): | |
| key = cache_key("author-1", "book-1", "Who is the hero?") | |
| invalidate_book_cache("author-1", "book-1") | |
| cache_set( | |
| key, | |
| CachedAnswer( | |
| raw_response="The hero is Marcus — quiet, stubborn, and hiding something.", | |
| faithfulness_score=0.95, | |
| top_book_ids=["book-1"], | |
| intent="question", | |
| intent_confidence=0.92, | |
| ), | |
| ) | |
| hit = cache_get(key) | |
| assert hit is not None | |
| assert hit.raw_response.startswith("The hero is Marcus") | |
| assert not hasattr(hit, "response") | |
| assert not hasattr(hit, "link_shown") | |