"""Prefix helpers — no Ollama, no Chroma.""" from __future__ import annotations import unittest from rag.embeddings import apply_prefix, embed_texts class FakeEmbedder: def __init__(self) -> None: self.seen: list[str] = [] def __call__(self, texts: list[str]) -> list[list[float]]: self.seen.extend(texts) return [[0.0, 1.0] for _ in texts] class PrefixTests(unittest.TestCase): def test_index_sends_doc_prefix_keeps_raw_text(self) -> None: fake = FakeEmbedder() raw = ["hello"] vecs = embed_texts(raw, prefix="search_document: ", ef=fake) self.assertEqual(fake.seen, ["search_document: hello"]) self.assertEqual(raw, ["hello"]) # caller storage unchanged self.assertEqual(len(vecs), 1) def test_query_sends_query_prefix(self) -> None: fake = FakeEmbedder() embed_texts(["q"], prefix="search_query: ", ef=fake) self.assertEqual(fake.seen, ["search_query: q"]) self.assertNotIn("q", fake.seen) def test_empty_prefix_is_raw(self) -> None: self.assertEqual(apply_prefix("hello", ""), "hello") fake = FakeEmbedder() embed_texts(["hello"], prefix="", ef=fake) self.assertEqual(fake.seen, ["hello"]) if __name__ == "__main__": unittest.main()