scooling_lab_helpers.py
file-level
1
files
1
commits
0
hotspots
0
🧊 dead
0
💥 blast risk
| 1 | """Shared unittest helpers for Scooling Lab tests.""" |
| 2 | |
| 3 | from __future__ import annotations |
| 4 | |
| 5 | import sys |
| 6 | from pathlib import Path |
| 7 | |
| 8 | PROJECT_ROOT = Path(__file__).resolve().parents[1] |
| 9 | SRC_ROOT = PROJECT_ROOT / "src" |
| 10 | if str(SRC_ROOT) not in sys.path: |
| 11 | sys.path.insert(0, str(SRC_ROOT)) |
| 12 | |
| 13 | |
| 14 | def valid_payload( |
| 15 | suffix: str = "alpha", retention_policy: dict[str, object] | None = None |
| 16 | ) -> dict[str, object]: |
| 17 | """Return a valid fixture createTrainingJob payload.""" |
| 18 | |
| 19 | payload: dict[str, object] = { |
| 20 | "idempotencyKey": f"fixture-{suffix}-0001", |
| 21 | "datasetId": "fixture:synthetic-tiny-v1", |
| 22 | "modelId": "fixture-tiny-llm", |
| 23 | "requestedBy": "unit-test", |
| 24 | "trainingParameters": { |
| 25 | "epochs": 1, |
| 26 | "learningRate": 0.1, |
| 27 | "dryRun": True, |
| 28 | }, |
| 29 | } |
| 30 | if retention_policy is not None: |
| 31 | payload["retentionPolicy"] = retention_policy |
| 32 | return payload |