Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| from fastapi.testclient import TestClient | |
| from server.app import app | |
| client = TestClient(app) | |
| def test_health_contract() -> None: | |
| response = client.get("/health") | |
| assert response.status_code == 200 | |
| payload = response.json() | |
| assert payload["status"] == "ok" | |
| assert payload["environment"] == "bug-triage-openenv" | |
| def test_baseline_contract() -> None: | |
| response = client.get("/baseline") | |
| assert response.status_code == 200 | |
| payload = response.json() | |
| assert payload["offline_mode"] is True | |
| assert "mean_score" in payload | |
| assert "results" in payload | |
| assert len(payload["results"]) == 3 | |
| def test_reset_step_and_state_contract() -> None: | |
| reset_response = client.post("/reset", json={"task_id": "bug_triage_easy", "seed": 42}) | |
| assert reset_response.status_code == 200 | |
| observation = reset_response.json() | |
| assert "current_ticket" in observation | |
| assert "queue_stats" in observation | |
| assert "steps_used" in observation | |
| assert "steps_remaining" in observation | |
| step_response = client.post( | |
| "/step", | |
| json={"action": {"action_type": "next_ticket", "next_ticket": {}}}, | |
| ) | |
| assert step_response.status_code == 200 | |
| step_payload = step_response.json() | |
| assert set(step_payload.keys()) == {"observation", "reward", "done", "info"} | |
| assert isinstance(step_payload["done"], bool) | |
| state_response = client.get("/state") | |
| assert state_response.status_code == 200 | |
| state_payload = state_response.json() | |
| assert "initialized" in state_payload | |
| assert "steps_used" in state_payload | |
| assert "current_task_id" in state_payload | |
| def test_state_before_reset_contract() -> None: | |
| # Ensure endpoint always returns a stable shape even before init in fresh process. | |
| response = client.get("/state") | |
| assert response.status_code == 200 | |
| payload = response.json() | |
| assert "initialized" in payload | |
| assert "episode_done" in payload | |