"""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