From a478165f3511430a762f32e90e26bc235cf30bb0 Mon Sep 17 00:00:00 2001 From: Bill Date: Sat, 1 Nov 2025 23:25:03 -0400 Subject: [PATCH] feat(api): add warnings field to response models Add optional warnings field to: - SimulateTriggerResponse - JobStatusResponse Co-Authored-By: Claude --- api/main.py | 2 ++ tests/unit/test_response_models.py | 32 ++++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 tests/unit/test_response_models.py diff --git a/api/main.py b/api/main.py index af34dbb..50c3d2d 100644 --- a/api/main.py +++ b/api/main.py @@ -74,6 +74,7 @@ class SimulateTriggerResponse(BaseModel): deployment_mode: str is_dev_mode: bool preserve_dev_data: Optional[bool] = None + warnings: Optional[List[str]] = None class JobProgress(BaseModel): @@ -100,6 +101,7 @@ class JobStatusResponse(BaseModel): deployment_mode: str is_dev_mode: bool preserve_dev_data: Optional[bool] = None + warnings: Optional[List[str]] = None class HealthResponse(BaseModel): diff --git a/tests/unit/test_response_models.py b/tests/unit/test_response_models.py new file mode 100644 index 0000000..d68b59c --- /dev/null +++ b/tests/unit/test_response_models.py @@ -0,0 +1,32 @@ +from api.main import SimulateTriggerResponse, JobStatusResponse, JobProgress + +def test_simulate_trigger_response_accepts_warnings(): + """Test SimulateTriggerResponse accepts warnings field.""" + response = SimulateTriggerResponse( + job_id="test-123", + status="completed", + total_model_days=10, + message="Job completed", + deployment_mode="DEV", + is_dev_mode=True, + warnings=["Rate limited", "Skipped 2 dates"] + ) + + assert response.warnings == ["Rate limited", "Skipped 2 dates"] + +def test_job_status_response_accepts_warnings(): + """Test JobStatusResponse accepts warnings field.""" + response = JobStatusResponse( + job_id="test-123", + status="completed", + progress=JobProgress(total_model_days=10, completed=10, failed=0, pending=0), + date_range=["2025-10-01"], + models=["gpt-5"], + created_at="2025-11-01T00:00:00Z", + details=[], + deployment_mode="DEV", + is_dev_mode=True, + warnings=["Rate limited"] + ) + + assert response.warnings == ["Rate limited"]