Spaces:
Sleeping
Sleeping
| # tests/test_integration.py | |
| # Run with: pytest tests/test_integration.py -v -m integration | |
| # These call real APIs — don't run in CI automatically. | |
| import pytest | |
| pytestmark = pytest.mark.integration # tag so CI can skip these | |
| def test_groq_connection_live(): | |
| from langchain_groq import ChatGroq | |
| from langchain_core.messages import HumanMessage | |
| from config import GROQ_API_KEY, GROQ_MODEL | |
| llm = ChatGroq(model=GROQ_MODEL, temperature=0, api_key=GROQ_API_KEY) | |
| r = llm.invoke([HumanMessage(content="Reply with just the word OK")]) | |
| assert len(r.content) > 0 | |
| def test_full_pipeline_live(): | |
| """Ingests a tiny doc, retrieves, runs agent — end to end.""" | |
| import os | |
| from pathlib import Path | |
| # Write test doc | |
| Path("./docs").mkdir(exist_ok=True) | |
| test_file = Path("./docs/_pytest_temp.txt") | |
| test_file.write_text( | |
| "The Eiffel Tower is in Paris, France. " | |
| "It was built in 1889. It is 330 metres tall." | |
| ) | |
| try: | |
| from ingestion import run_ingestion | |
| from retriever import load_indexes, hybrid_retrieve | |
| from agent import run_rag_agent | |
| run_ingestion() | |
| load_indexes() | |
| results = hybrid_retrieve("How tall is the Eiffel Tower?", top_k=3) | |
| assert len(results) > 0 | |
| assert "ce_score" in results[0] # reranker ran | |
| answer, retries, verdict = run_rag_agent( | |
| "How tall is the Eiffel Tower?", results | |
| ) | |
| assert "330" in answer or "metres" in answer.lower() | |
| assert verdict in {"PASS", "FAIL"} | |
| finally: | |
| test_file.unlink(missing_ok=True) # always clean up |