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.search.OllamaEmbedder")
|
||||||
@patch("companion.rag.indexer.OllamaEmbedder")
|
@patch("companion.rag.indexer.OllamaEmbedder")
|
||||||
def test_index_and_search_flow(mock_indexer_embedder, mock_search_embedder):
|
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 = 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_indexer_embedder.return_value = mock_embed
|
||||||
mock_search_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
|
assert len(results) >= 1
|
||||||
files = {r["source_file"] for r in results}
|
files = {r["source_file"] for r in results}
|
||||||
assert "note1.md" in files
|
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