sound_level_limiter / tests /test_server_api.py
24f3004602
env,test, and tasks files updated
dd76fa7
Raw
History Blame Contribute Delete
1.94 kB
from fastapi.testclient import TestClient
from server.app import app
def test_post_tasks_registers_custom_task() -> None:
client = TestClient(app)
payload = {
"id": "task_api_custom",
"name": "API Custom Task",
"description": "Task inserted through POST /tasks",
"difficulty": "custom",
"initial_sound": 82.0,
"noise_std": 3.3,
"max_steps": 35,
"success_threshold": 0.52,
}
response = client.post("/tasks?overwrite=true", json=payload)
assert response.status_code == 200
body = response.json()
assert "task" in body
assert body["task"]["id"] == payload["id"]
task_response = client.get(f"/tasks/{payload['id']}")
assert task_response.status_code == 200
assert task_response.json()["difficulty"] == "custom"
def test_tasks_register_alias_endpoint() -> None:
client = TestClient(app)
payload = {
"id": "task_api_custom_alias",
"name": "API Custom Task Alias",
"description": "Task inserted through POST /tasks/register",
"difficulty": "custom",
"initial_sound": 79.0,
"noise_std": 2.7,
"max_steps": 28,
"success_threshold": 0.5,
}
response = client.post("/tasks/register", json=payload)
assert response.status_code == 200
body = response.json()
assert body["status"] == "registered"
assert body["task"]["id"] == payload["id"]
def test_websocket_reset_and_step_roundtrip() -> None:
client = TestClient(app)
with client.websocket_connect("/ws") as websocket:
reset_payload = websocket.receive_json()
assert reset_payload["type"] == "reset"
assert "observation" in reset_payload
websocket.send_json({"action": 2})
step_payload = websocket.receive_json()
assert step_payload["type"] == "step"
assert "reward" in step_payload
assert "state" in step_payload