tutor-progress-env / tests /test_app.py
sanjeevafk's picture
feat: Enhance TutorProgressEnv with session management and improved policies
1860cb2
Raw
History Blame Contribute Delete
1.94 kB
from fastapi.testclient import TestClient
from app import app
client = TestClient(app)
def test_health_and_metadata():
health = client.get("/health")
assert health.status_code == 200
assert health.json()["status"] == "healthy"
meta = client.get("/metadata")
assert meta.status_code == 200
body = meta.json()
assert "name" in body and "description" in body
def test_session_reset_and_step():
session = client.get("/session/new")
assert session.status_code == 200
session_id = session.json()["session_id"]
reset = client.post("/reset", json={"session_id": session_id, "task_id": "easy_1"})
assert reset.status_code == 200
reset_body = reset.json()
assert reset_body["task_id"] == "easy_1"
assert reset_body["session_id"] == session_id
tool = client.post("/step", json={"session_id": session_id, "type": "tool", "tool_name": "extract_concepts"})
assert tool.status_code == 200
tool_body = tool.json()
assert tool_body["done"] is False
assert "tool_output" in tool_body["info"]
final = client.post(
"/step",
json={
"session_id": session_id,
"type": "final_answer",
"content": "Summary: confusion.\nDiagnosis: concept gap.\nPlan: targeted practice.\nConstraints: none.",
},
)
assert final.status_code == 200
final_body = final.json()
assert final_body["done"] is True
assert final_body["observation"]["session_id"] == session_id
def test_schema_and_mcp_available():
schema = client.get("/schema")
assert schema.status_code == 200
schema_body = schema.json()
assert "action" in schema_body and "observation" in schema_body and "state" in schema_body
mcp = client.post("/mcp", json={"jsonrpc": "2.0", "id": 1, "method": "initialize", "params": {}})
assert mcp.status_code == 200
mcp_body = mcp.json()
assert mcp_body["jsonrpc"] == "2.0"