Spaces:
Running
Running
Download bioai-platform/backend/tests/test_smoke_md.py from Samad14/bio-nexus-api: direct link, hf CLI and curl.
- Browser
- Download file 2.72 kB
-
https://huggingface.co/spaces/Samad14/bio-nexus-api/resolve/main/bioai-platform/backend/tests/test_smoke_md.py
- Command line
-
hf download hf://spaces/Samad14/bio-nexus-api/bioai-platform/backend/tests/test_smoke_md.py
-
curl -L -o test_smoke_md.py https://huggingface.co/spaces/Samad14/bio-nexus-api/resolve/main/bioai-platform/backend/tests/test_smoke_md.py
2.72 kB
| """ | |
| Smoke tests for the MD Simulation endpoints. | |
| Covers: | |
| - POST /api/md/run creates a job (auth required) | |
| - GET /api/md/status/{job_id} returns status (auth required) | |
| - Invalid PDB ID returns 422 | |
| - Missing auth returns 401 | |
| - Status for nonexistent job returns 404/422 | |
| """ | |
| import pytest | |
| BASE_RUN = "/api/md/run" | |
| BASE_STATUS = "/api/md/status" | |
| class TestMDAuth: | |
| """Verify auth enforcement.""" | |
| def test_no_auth_returns_401(self, client): | |
| resp = client.post(BASE_RUN, json={"pdb_id": "1crn", "mode": "minimize"}) | |
| assert resp.status_code == 401 | |
| def test_invalid_token_returns_401(self, client): | |
| resp = client.post( | |
| BASE_RUN, | |
| json={"pdb_id": "1crn", "mode": "minimize"}, | |
| headers={"Authorization": "Bearer garbage.token.here"}, | |
| ) | |
| assert resp.status_code == 401 | |
| class TestMDRun: | |
| """POST /api/md/run validation.""" | |
| def test_valid_request_returns_job(self, client, auth_headers): | |
| resp = client.post(BASE_RUN, json={"pdb_id": "1crn", "mode": "minimize"}, headers=auth_headers) | |
| assert resp.status_code == 200 | |
| body = resp.json() | |
| assert "job_id" in body | |
| assert body["status"] in ("queued", "submitted", "running") | |
| def test_invalid_pdb_id_too_short(self, client, auth_headers): | |
| resp = client.post(BASE_RUN, json={"pdb_id": "1cr", "mode": "minimize"}, headers=auth_headers) | |
| assert resp.status_code == 422 | |
| def test_invalid_pdb_id_special_chars(self, client, auth_headers): | |
| resp = client.post(BASE_RUN, json={"pdb_id": "1!@#", "mode": "minimize"}, headers=auth_headers) | |
| assert resp.status_code == 422 | |
| def test_invalid_mode_returns_422(self, client, auth_headers): | |
| resp = client.post(BASE_RUN, json={"pdb_id": "1crn", "mode": "invalid_mode"}, headers=auth_headers) | |
| assert resp.status_code == 422 | |
| def test_missing_pdb_id_returns_422(self, client, auth_headers): | |
| resp = client.post(BASE_RUN, json={"mode": "minimize"}, headers=auth_headers) | |
| assert resp.status_code == 422 | |
| def test_default_mode_is_minimize(self, client, auth_headers): | |
| resp = client.post(BASE_RUN, json={"pdb_id": "1crn"}, headers=auth_headers) | |
| assert resp.status_code == 200 | |
| class TestMDStatus: | |
| """GET /api/md/status/{job_id} validation.""" | |
| def test_no_auth_returns_401(self, client): | |
| resp = client.get(f"{BASE_STATUS}/fake-job-id") | |
| assert resp.status_code == 401 | |
| def test_nonexistent_job_returns_error(self, client, auth_headers): | |
| resp = client.get(f"{BASE_STATUS}/00000000-0000-0000-0000-000000000000", headers=auth_headers) | |
| assert resp.status_code in (404, 422, 500) | |