a400130c67
Add coach review APIs, pose calibration thresholds, Gitea CI, Kubernetes skeleton, H5 practice page, and mini program tab bar. Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
2.0 KiB
Python
70 lines
2.0 KiB
Python
from fastapi.testclient import TestClient
|
|
|
|
|
|
def test_health(client):
|
|
resp = client.get("/health")
|
|
assert resp.status_code == 200
|
|
assert resp.json()["stage"] == "sprint6"
|
|
|
|
|
|
def test_login_invalid_code(client):
|
|
resp = client.post(
|
|
"/api/auth/login",
|
|
json={"loginType": "phone_code", "credential": "18600000000", "code": "000000"},
|
|
)
|
|
assert resp.status_code == 401
|
|
assert resp.json()["code"] == 10002
|
|
|
|
|
|
def test_login_and_children_crud(client, auth_headers):
|
|
resp = client.get("/api/children", headers=auth_headers)
|
|
assert resp.status_code == 200
|
|
assert resp.json()["data"]["page"]["total"] == 0
|
|
|
|
create = client.post(
|
|
"/api/children",
|
|
headers={**auth_headers, "Idempotency-Key": "demo-child-1"},
|
|
json={
|
|
"name": "小明",
|
|
"birthday": "2016-03-15",
|
|
"gender": "male",
|
|
"height": 142.5,
|
|
"weight": 36.0,
|
|
},
|
|
)
|
|
assert create.status_code == 201
|
|
child_id = create.json()["data"]["id"]
|
|
assert create.json()["data"]["age"] >= 9
|
|
|
|
detail = client.get(f"/api/children/{child_id}", headers=auth_headers)
|
|
assert detail.status_code == 200
|
|
assert detail.json()["data"]["name"] == "小明"
|
|
|
|
updated = client.patch(
|
|
f"/api/children/{child_id}",
|
|
headers=auth_headers,
|
|
json={
|
|
"name": "小明同学",
|
|
"birthday": "2016-03-15",
|
|
"gender": "male",
|
|
},
|
|
)
|
|
assert updated.status_code == 200
|
|
assert updated.json()["data"]["name"] == "小明同学"
|
|
|
|
archived = client.delete(f"/api/children/{child_id}", headers=auth_headers)
|
|
assert archived.status_code == 204
|
|
|
|
missing = client.get(f"/api/children/{child_id}", headers=auth_headers)
|
|
assert missing.status_code == 404
|
|
|
|
|
|
def test_children_requires_auth(client):
|
|
resp = client.get("/api/children")
|
|
assert resp.status_code == 401
|
|
|
|
|
|
def test_reports_requires_auth(client):
|
|
resp = client.get("/api/reports/1")
|
|
assert resp.status_code == 401
|