test_contracts.py file-level

at sha256:1 · View file ↗ · Intel ↗

History
1 files
1 commits
0 hotspots
0 🧊 dead
0 💥 blast risk
sha256:1 Document cross-repo training status Add the Scooling, Knowtation, and … · · Jun 10, 2026
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")