test_contracts.py
python
sha256:1d3182b1c5c2833c8ab0d437e03eeadfd3ad6679a2877a6baab8d17442d38936
Bootstrap Scooling Lab repository
Human
patch
43 days ago
| 1 | """Unit tests for Scooling Lab training contracts.""" |
| 2 | |
| 3 | from unittest import TestCase |
| 4 | |
| 5 | from scooling_lab.contracts import ( |
| 6 | TrainingDatasetRef, |
| 7 | TrainingJobRequest, |
| 8 | TrainingJobStatus, |
| 9 | validate_training_job_request, |
| 10 | ) |
| 11 | |
| 12 | |
| 13 | class TrainingContractTests(TestCase): |
| 14 | """Validate stable request and status behavior.""" |
| 15 | |
| 16 | def test_valid_training_job_request_has_no_errors(self) -> None: |
| 17 | dataset = TrainingDatasetRef( |
| 18 | dataset_id="dataset_001", |
| 19 | workspace_id="workspace_001", |
| 20 | source_commit="sha256:abc123", |
| 21 | approved_by="reviewer_001", |
| 22 | ) |
| 23 | request = TrainingJobRequest( |
| 24 | job_id="job_001", |
| 25 | dataset=dataset, |
| 26 | base_model="gemma-family", |
| 27 | adapter_kind="lora", |
| 28 | location_policy="local", |
| 29 | ) |
| 30 | |
| 31 | self.assertEqual(validate_training_job_request(request), ()) |
| 32 | |
| 33 | def test_blank_required_fields_are_reported_deterministically(self) -> None: |
| 34 | dataset = TrainingDatasetRef( |
| 35 | dataset_id="", |
| 36 | workspace_id="", |
| 37 | source_commit="", |
| 38 | approved_by="", |
| 39 | ) |
| 40 | request = TrainingJobRequest( |
| 41 | job_id="", |
| 42 | dataset=dataset, |
| 43 | base_model="", |
| 44 | adapter_kind="qlora", |
| 45 | location_policy="cloud_policy", |
| 46 | ) |
| 47 | |
| 48 | self.assertEqual( |
| 49 | validate_training_job_request(request), |
| 50 | ( |
| 51 | "job_id is required", |
| 52 | "dataset.dataset_id is required", |
| 53 | "dataset.workspace_id is required", |
| 54 | "dataset.source_commit is required", |
| 55 | "dataset.approved_by is required", |
| 56 | "base_model is required", |
| 57 | ), |
| 58 | ) |
| 59 | |
| 60 | def test_training_status_values_are_stable(self) -> None: |
| 61 | self.assertEqual(TrainingJobStatus.QUEUED.value, "queued") |
| 62 | self.assertEqual(TrainingJobStatus.SUCCEEDED.value, "succeeded") |
File History
1 commit
sha256:1d3182b1c5c2833c8ab0d437e03eeadfd3ad6679a2877a6baab8d17442d38936
Bootstrap Scooling Lab repository
Human
patch
43 days ago