feat: add analysis pages and raster risk map
Ship a new app version with broader analytics, restructured dashboards, and a server-rendered risk map. Frontend: - Add Overview, Demographic, Disease, and Environmental Health analysis pages - Add AnomalyMarkers, CalendarHeatmap, and MetricHeatmapTable components - Rebuild Alerts map onto server-rendered raster risk tiles; expand Monitoring, Trend, and District Comparison views - Extend API client, stores, and TypeScript types Backend: - Add environment router (pollutants, lag correlations) - Add risk_raster util serving XYZ 100m risk tiles - Expand cases endpoints (demographics, seasonality, diagnoses) and insights; harden auth and file-based loaders Data & tooling: - Add processed outpatient/inpatient/combined case parquet (LFS) - Add nested CLAUDE.md guides, pyrightconfig, and test updates
This commit is contained in:
@@ -37,8 +37,11 @@ class TestMissingResources:
|
||||
|
||||
class TestInvalidForecastDay:
|
||||
def test_forecast_out_of_range(self, client: TestClient):
|
||||
# days=0 violates the ge=1 bound on /forecast/{days}, so FastAPI returns 422.
|
||||
# (This previously returned 200 because `Path` was shadowed by `pathlib.Path`,
|
||||
# silently disabling validation — fixed by the risk.py import correction.)
|
||||
resp = client.get("/api/risk/forecast/0")
|
||||
assert resp.status_code in (200, 404)
|
||||
assert resp.status_code == 422
|
||||
|
||||
def test_forecast_too_large(self, client: TestClient):
|
||||
resp = client.get("/api/risk/forecast/999")
|
||||
|
||||
Reference in New Issue
Block a user