Spaces:
Sleeping
Sleeping
File size: 1,366 Bytes
94f31ec | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | """Tests for Pinecone seeding script."""
from unittest.mock import AsyncMock, MagicMock, patch
import pytest
import scripts.seed_rag_data as seed_rag_data
@pytest.mark.asyncio
@patch("scripts.seed_rag_data.get_rag_service")
async def test_seed_collection_uses_rag_service_add_documents(
mock_get_rag_service,
tmp_path,
) -> None:
role_dir = tmp_path / "product_owner"
role_dir.mkdir(parents=True, exist_ok=True)
(role_dir / "role_playbook.txt").write_text(
"Define PRD scope and acceptance criteria.",
encoding="utf-8",
)
mock_rag = MagicMock()
mock_rag.is_pinecone_available.return_value = True
mock_rag.add_documents = AsyncMock(return_value=["doc-1", "doc-2"])
mock_get_rag_service.return_value = mock_rag
with patch.object(seed_rag_data, "CORPUS_DIR", tmp_path):
result = await seed_rag_data.seed_collection(
role_name="product_owner",
directory_name="product_owner",
dry_run=False,
)
assert result["chunks_found"] > 0
assert result["chunks_inserted"] == 2
def test_main_returns_error_without_pinecone_env(monkeypatch) -> None:
monkeypatch.delenv("PINECONE_API_KEY", raising=False)
monkeypatch.delenv("PINECONE_INDEX", raising=False)
exit_code = seed_rag_data.main(["--role", "product_owner"])
assert exit_code == 1
|