math-solver / tests /integration /test_orchestrator_smoke.py
Cuong2004
Deploy API from GitHub Actions
395651c
"""In-process orchestrator smoke (2 queries) — same stack as API without HTTP."""
from __future__ import annotations
import os
import uuid
import pytest
from tests.cases.pipeline_cases import QUERIES
def _openrouter_configured() -> bool:
return bool(os.getenv("OPENROUTER_API_KEY_1") or os.getenv("OPENROUTER_API_KEY"))
@pytest.mark.orchestrator_local
@pytest.mark.real_agents
@pytest.mark.asyncio
async def test_orchestrator_two_queries_smoke():
if not _openrouter_configured():
pytest.skip("OPENROUTER_API_KEY_1 or OPENROUTER_API_KEY not set")
from agents.orchestrator import Orchestrator
orch = Orchestrator()
# Avoid Q1-style rectangles first: LLM sometimes returns prose instead of DSL.
stable_ids = ("Q5", "Q2")
by_id = {q["id"]: q for q in QUERIES}
for qid in stable_ids:
q = by_id[qid]
jid = str(uuid.uuid4())
result = await orch.run(text=q["text"], job_id=jid)
assert "error" not in result, f"{qid}: {result.get('error')}"
assert result.get("coordinates"), f"No coordinates for {qid}"