| import pytest |
| from app import APIResponse, PredictionData, LogisticsPlan |
|
|
| def test_api_response_provenance_fields(): |
| """Verify that the APIResponse schema includes scientific provenance fields.""" |
| schema = APIResponse.model_json_schema() |
| props = schema["properties"] |
| |
| assert "data_status" in props |
| assert "forecast_type" in props |
| assert "model_version" in props |
| assert "training_data_type" in props |
| assert "disclaimer" in props |
|
|
| def test_logistics_plan_schema(): |
| """Verify LogisticsPlan includes operational assumptions.""" |
| schema = LogisticsPlan.model_json_schema() |
| props = schema["properties"] |
| |
| assert "operational_assumptions" in props |
| assert "calculation_method" in props |
|
|
| def test_kecamatan_registry_json_integrity(): |
| """Verify that config/kecamatan_registry.json contains exactly 44 sub-districts with valid metadata.""" |
| from core.config import KECAMATAN_DATABASE, ALLOWED_LOCATIONS |
| assert len(KECAMATAN_DATABASE) == 44, f"Expected 44 kecamatan, got {len(KECAMATAN_DATABASE)}" |
| assert len(ALLOWED_LOCATIONS) == 44 |
| assert "Menteng" in KECAMATAN_DATABASE |
| assert "Cakung" in KECAMATAN_DATABASE |
| assert "Penjaringan" in KECAMATAN_DATABASE |
| assert "Cengkareng" in KECAMATAN_DATABASE |
| |
| for loc, info in KECAMATAN_DATABASE.items(): |
| assert "latitude" in info |
| assert "longitude" in info |
| assert "population_jiwa" in info |
| assert "normal_avg" in info |
| assert "city" in info |
| assert "zone" in info |
|
|