test: improve integration test with dynamic mock and full coverage
This commit is contained in:
@@ -141,8 +141,16 @@ def _make_config(vault_path: Path, vector_store_path: Path) -> Config:
|
||||
@patch("companion.rag.search.OllamaEmbedder")
|
||||
@patch("companion.rag.indexer.OllamaEmbedder")
|
||||
def test_index_and_search_flow(mock_indexer_embedder, mock_search_embedder):
|
||||
"""Verify end-to-end indexing and semantic search with mocked embeddings."""
|
||||
mock_embed = MagicMock()
|
||||
mock_embed.embed.return_value = [[1.0, 0.0, 0.0, 0.0], [0.0, 1.0, 0.0, 0.0]]
|
||||
|
||||
def mock_embed_side_effect(texts):
|
||||
return [
|
||||
[1.0, 0.0, 0.0, 0.0] if i == 0 else [0.0, 1.0, 0.0, 0.0]
|
||||
for i in range(len(texts))
|
||||
]
|
||||
|
||||
mock_embed.embed.side_effect = mock_embed_side_effect
|
||||
mock_indexer_embedder.return_value = mock_embed
|
||||
mock_search_embedder.return_value = mock_embed
|
||||
|
||||
@@ -171,3 +179,8 @@ def test_index_and_search_flow(mock_indexer_embedder, mock_search_embedder):
|
||||
assert len(results) >= 1
|
||||
files = {r["source_file"] for r in results}
|
||||
assert "note1.md" in files
|
||||
|
||||
results = engine.search("goodbye")
|
||||
assert len(results) >= 1
|
||||
files = {r["source_file"] for r in results}
|
||||
assert "note2.md" in files
|
||||
|
||||
Reference in New Issue
Block a user