Spaces:
Sleeping
Sleeping
| from __future__ import annotations | |
| import sys | |
| from pathlib import Path | |
| from fastapi.testclient import TestClient | |
| ROOT = Path(__file__).resolve().parents[1] | |
| if str(ROOT) not in sys.path: | |
| sys.path.insert(0, str(ROOT)) | |
| from app import app | |
| client = TestClient(app) | |
| def test_reset_accepts_empty_body(): | |
| response = client.post("/reset") | |
| assert response.status_code == 200 | |
| body = response.json() | |
| assert "episode_id" in body | |
| assert body["done"] is False | |
| assert "observation" in body | |
| def test_episode_state_is_isolated(): | |
| first_reset = client.post("/reset", json={"task_name": "refund_triage_easy"}) | |
| second_reset = client.post("/reset", json={"task_name": "cross_function_brief_medium"}) | |
| assert first_reset.status_code == 200 | |
| assert second_reset.status_code == 200 | |
| first_episode = first_reset.json()["episode_id"] | |
| second_episode = second_reset.json()["episode_id"] | |
| assert first_episode != second_episode | |
| first_chunk = first_reset.json()["observation"]["available_chunks"][0]["chunk_id"] | |
| step = client.post( | |
| f"/step?episode_id={first_episode}", | |
| json={"action_type": "inspect_artifact", "artifact_id": first_chunk}, | |
| ) | |
| assert step.status_code == 200 | |
| assert step.json()["episode_id"] == first_episode | |
| first_state = client.get(f"/state?episode_id={first_episode}") | |
| second_state = client.get(f"/state?episode_id={second_episode}") | |
| assert first_state.status_code == 200 | |
| assert second_state.status_code == 200 | |
| assert first_chunk in first_state.json()["reviewed_artifacts"] | |
| assert second_state.json()["reviewed_artifacts"] == [] | |