Download tests/test_coach_admin_api.py from PYTHAI/mindXtrain: direct link, hf CLI and curl.
- Browser
- Download file 2.67 kB
-
https://huggingface.co/PYTHAI/mindXtrain/resolve/main/tests/test_coach_admin_api.py
- Command line
-
hf download hf://PYTHAI/mindXtrain/tests/test_coach_admin_api.py
-
curl -L -o test_coach_admin_api.py https://huggingface.co/PYTHAI/mindXtrain/resolve/main/tests/test_coach_admin_api.py
2.67 kB
| """Admin diagnostics endpoints — live metrics + runs roster.""" | |
| from __future__ import annotations | |
| from fastapi.testclient import TestClient | |
| from mindxtrain.operator.app import app | |
| client = TestClient(app) | |
| # ---- /diagnostics/live ----------------------------------------------------- | |
| def test_live_endpoint_returns_metrics(): | |
| r = client.get("/coach/api/diagnostics/live") | |
| assert r.status_code == 200 | |
| data = r.json() | |
| for key in ( | |
| "load_avg_1m", "load_avg_5m", "load_avg_15m", | |
| "ram_total_gb", "ram_available_gb", "ram_used_pct", | |
| "disk_total_gb", "disk_used_pct", | |
| "operator_rss_mb", "operator_threads", "cores", "ts", | |
| ): | |
| assert key in data, f"missing live metric: {key}" | |
| def test_live_endpoint_operator_rss_positive(): | |
| """The operator process is reporting on itself — its own RSS must be > 0.""" | |
| data = client.get("/coach/api/diagnostics/live").json() | |
| assert data["operator_rss_mb"] >= 0 | |
| # And cores is always ≥ 1. | |
| assert data["cores"] >= 1 | |
| def test_live_endpoint_ram_pct_in_range(): | |
| data = client.get("/coach/api/diagnostics/live").json() | |
| assert 0.0 <= data["ram_used_pct"] <= 100.0 | |
| assert 0.0 <= data["disk_used_pct"] <= 100.0 | |
| def test_live_endpoint_consecutive_calls_have_different_timestamps(): | |
| """The ts field is a real sample timestamp, not a constant.""" | |
| import time | |
| a = client.get("/coach/api/diagnostics/live").json() | |
| time.sleep(0.05) | |
| b = client.get("/coach/api/diagnostics/live").json() | |
| assert b["ts"] > a["ts"] | |
| # ---- /diagnostics/runs ----------------------------------------------------- | |
| def test_diagnostics_runs_returns_list(): | |
| """Even with no runs registered, the endpoint returns [].""" | |
| r = client.get("/coach/api/diagnostics/runs") | |
| assert r.status_code == 200 | |
| assert isinstance(r.json(), list) | |
| def test_diagnostics_runs_newest_first(monkeypatch): | |
| """Created-at ordering: newest first. | |
| The endpoint reads from the module-level _REGISTRY singleton in | |
| coach/api.py — monkeypatch that to a fresh registry so the test | |
| doesn't see leftover runs from other tests. | |
| """ | |
| import time | |
| from pathlib import Path | |
| from mindxtrain.operator import runs as _runs | |
| from mindxtrain.operator.coach import api as coach_api | |
| fresh = _runs.RunRegistry() | |
| monkeypatch.setattr(coach_api, "_REGISTRY", fresh) | |
| fresh.create("r1", Path("/tmp/r1")) | |
| time.sleep(0.05) | |
| fresh.create("r2", Path("/tmp/r2")) | |
| r = client.get("/coach/api/diagnostics/runs").json() | |
| assert len(r) == 2 | |
| assert r[0]["recipe"] == "r2" # newest first | |
| assert r[1]["recipe"] == "r1" | |