Spaces:
Running on Zero
Running on Zero
| from __future__ import annotations | |
| import tempfile | |
| import unittest | |
| from pathlib import Path | |
| from core.app_state import AppState | |
| from core.events import Event, EventType | |
| from tracking.trackio_client import ( | |
| TrackingClient, | |
| TrackingConfig, | |
| export_traces, | |
| load_tracking_config, | |
| read_trace_rows, | |
| tracking_status_dict, | |
| ) | |
| from training.evaluation import default_prompt_cases, evaluate_responses, log_eval_metrics | |
| class TrackingTest(unittest.TestCase): | |
| def test_loads_tracking_config(self) -> None: | |
| with tempfile.TemporaryDirectory() as tmp: | |
| path = Path(tmp) / "training.yaml" | |
| path.write_text( | |
| "trackio:\n" | |
| " enabled: true\n" | |
| " project: demo\n" | |
| " local_path: data/demo.jsonl\n", | |
| encoding="utf-8", | |
| ) | |
| config = load_tracking_config(path) | |
| self.assertTrue(config.enabled) | |
| self.assertEqual(config.project, "demo") | |
| self.assertEqual(config.local_path, "data/demo.jsonl") | |
| def test_logs_events_to_local_jsonl(self) -> None: | |
| with tempfile.TemporaryDirectory() as tmp: | |
| path = Path(tmp) / "traces.jsonl" | |
| client = TrackingClient(TrackingConfig(local_path=str(path))) | |
| saved = client.log("dataset_loaded", {"rows": 2}) | |
| self.assertEqual(saved, path) | |
| self.assertEqual(read_trace_rows(path)[0]["payload"]["rows"], 2) | |
| def test_app_state_logs_events_to_tracking_client(self) -> None: | |
| with tempfile.TemporaryDirectory() as tmp: | |
| path = Path(tmp) / "traces.jsonl" | |
| client = TrackingClient(TrackingConfig(local_path=str(path))) | |
| state = AppState(tracking_client=client) | |
| state.emit(Event(EventType.INFERENCE_REQUEST, {"model_id": "demo"})) | |
| self.assertEqual(read_trace_rows(path)[0]["event"], "inference_request") | |
| def test_exports_traces_even_when_source_missing(self) -> None: | |
| with tempfile.TemporaryDirectory() as tmp: | |
| output = Path(tmp) / "exports" / "traces.jsonl" | |
| exported = export_traces(Path(tmp) / "missing.jsonl", output) | |
| self.assertEqual(exported, output) | |
| self.assertEqual(output.read_text(encoding="utf-8"), "") | |
| def test_logs_eval_metrics(self) -> None: | |
| with tempfile.TemporaryDirectory() as tmp: | |
| path = Path(tmp) / "traces.jsonl" | |
| report = evaluate_responses(default_prompt_cases(), ["field note"]) | |
| client = TrackingClient(TrackingConfig(local_path=str(path))) | |
| saved = log_eval_metrics(report, client) | |
| self.assertEqual(saved, path) | |
| self.assertEqual(read_trace_rows(path)[0]["event"], "training_metrics") | |
| def test_tracking_status_dict(self) -> None: | |
| status = tracking_status_dict(TrackingClient(TrackingConfig(project="demo"))) | |
| self.assertEqual(status["project"], "demo") | |
| self.assertIn(status["mode"], {"local_jsonl", "trackio"}) | |
| if __name__ == "__main__": | |
| unittest.main() | |