Spaces:
Sleeping
Sleeping
| """Tests for Pinecone seeding script.""" | |
| from unittest.mock import AsyncMock, MagicMock, patch | |
| import pytest | |
| import scripts.seed_rag_data as seed_rag_data | |
| 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 | |