Silence the deprecation warnings our own code raises
Starlette renamed HTTP_422_UNPROCESSABLE_ENTITY to HTTP_422_UNPROCESSABLE_CONTENT and now warns on the old spelling; the value is unchanged at 422, so the 20 call sites in the routers move over with no wire-format or frontend impact. Alembic >=1.16 supersedes version_path_separator with path_separator, which governs both prepend_sys_path and version_locations, and warns when it is absent. Together this takes pytest from 26 deprecation warnings to 6. The remainder are slowapi calling asyncio.iscoroutinefunction; they are left visible deliberately, with no filterwarnings entry, as a reminder to revisit once upstream ships a fix. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+1
-1
@@ -1,7 +1,7 @@
|
||||
[alembic]
|
||||
script_location = migrations
|
||||
prepend_sys_path = .
|
||||
version_path_separator = os
|
||||
path_separator = os
|
||||
# Last-resort fallback only. migrations/env.py's _resolve_url() overrides this
|
||||
# from the app's own APP_SQLITE_PATH setting (or an `-x sqlalchemy.url=...`
|
||||
# argument) whenever either is available — this value is used only if neither is.
|
||||
|
||||
@@ -116,7 +116,7 @@ async def get_context(
|
||||
"""Return workspace + children for the current user. Used by the dev harness."""
|
||||
pd = await pd_repo.get_by_id(current_user.personal_data_uuid)
|
||||
if pd is None:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, "No parent profile found")
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, "No parent profile found")
|
||||
children = await child_repo.list_by_workspace(pd.workspace_id)
|
||||
return _UserContext(
|
||||
personal_data_uuid=str(pd.uuid),
|
||||
|
||||
@@ -31,5 +31,5 @@ async def get_calendar_days(
|
||||
workspace_id=workspace_id, start_year=start_year, years=years
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return CalendarDaysResponse.from_domain(window)
|
||||
|
||||
@@ -28,7 +28,7 @@ async def upsert_day_override(
|
||||
note=payload.note,
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return DayOverrideResponse.from_entity(entity)
|
||||
|
||||
|
||||
|
||||
@@ -82,7 +82,7 @@ async def save_manual_entry(
|
||||
source=payload.source,
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return ParentalLeaveFetchResponse.from_entity(fetch)
|
||||
|
||||
|
||||
@@ -170,7 +170,7 @@ async def start_fetch(
|
||||
children = await child_repo.list_by_workspace(workspace_id)
|
||||
if not children:
|
||||
raise HTTPException(
|
||||
status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||
status.HTTP_422_UNPROCESSABLE_CONTENT,
|
||||
"No child in workspace — add one before fetching.",
|
||||
)
|
||||
child_id = children[0].id
|
||||
|
||||
@@ -64,7 +64,7 @@ async def create_leave_wish(
|
||||
wants_dubbeldag=payload.wants_dubbeldag,
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return LeaveWishResponse.from_entity(entity)
|
||||
|
||||
|
||||
@@ -125,7 +125,7 @@ async def update_leave_wish(
|
||||
_clear_target_days="target_days" in fields_set and payload.target_days is None,
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, str(exc)) from exc
|
||||
return LeaveWishResponse.from_entity(entity)
|
||||
|
||||
@@ -34,7 +34,7 @@ async def propose_plan(
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, str(exc)) from exc
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return PlanProposalResponse.from_domain(proposal)
|
||||
|
||||
|
||||
@@ -101,5 +101,5 @@ async def sync_plan(
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, str(exc)) from exc
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return PlanSyncResponse.from_domain(result)
|
||||
|
||||
@@ -39,7 +39,7 @@ async def create_planned_day_exclusion(
|
||||
day=payload.date,
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return PlannedDayExclusionResponse.from_entity(entity)
|
||||
|
||||
|
||||
|
||||
@@ -30,10 +30,10 @@ def _to_http_error(exc: ValidationError) -> HTTPException:
|
||||
"""
|
||||
if exc.message_key:
|
||||
return HTTPException(
|
||||
status.HTTP_422_UNPROCESSABLE_ENTITY,
|
||||
status.HTTP_422_UNPROCESSABLE_CONTENT,
|
||||
detail={"message_key": exc.message_key, "data": exc.data},
|
||||
)
|
||||
return HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, detail=str(exc))
|
||||
return HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, detail=str(exc))
|
||||
|
||||
|
||||
@router.post("", response_model=PlannedLeaveDayResponse, status_code=status.HTTP_201_CREATED)
|
||||
|
||||
@@ -32,7 +32,7 @@ async def upsert_planned_days(
|
||||
try:
|
||||
entity = await service.upsert_planned(child, year, payload.planned_days)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return PreschoolPlanningDaysResponse.from_entity(entity)
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ async def record_taken_days(
|
||||
try:
|
||||
entity = await service.record_taken(child, year, payload.taken_days)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return PreschoolPlanningDaysResponse.from_entity(entity)
|
||||
|
||||
|
||||
|
||||
@@ -83,7 +83,7 @@ async def create_child(
|
||||
)
|
||||
return _child_to_response(child)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
|
||||
|
||||
@child_router.get("/{child_id}", response_model=ChildResponse)
|
||||
@@ -130,7 +130,7 @@ async def update_child(
|
||||
)
|
||||
return _child_to_response(child)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, str(exc)) from exc
|
||||
|
||||
@@ -164,6 +164,6 @@ async def update_parent_settings(
|
||||
)
|
||||
return PersonalDataResponse.from_entity(updated)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
except NotFoundError as exc:
|
||||
raise HTTPException(status.HTTP_404_NOT_FOUND, str(exc)) from exc
|
||||
|
||||
@@ -30,7 +30,7 @@ async def upsert_vacation_days(
|
||||
saved_days_in=payload.saved_days_in,
|
||||
)
|
||||
except ValidationError as exc:
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_ENTITY, str(exc)) from exc
|
||||
raise HTTPException(status.HTTP_422_UNPROCESSABLE_CONTENT, str(exc)) from exc
|
||||
return VacationDaysResponse.from_entity(entity)
|
||||
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ def _to_http_error(exc: NotFoundError | ValidationError) -> HTTPException:
|
||||
code = (
|
||||
status.HTTP_404_NOT_FOUND
|
||||
if isinstance(exc, NotFoundError)
|
||||
else status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
else status.HTTP_422_UNPROCESSABLE_CONTENT
|
||||
)
|
||||
if exc.message_key:
|
||||
return HTTPException(code, detail={"message_key": exc.message_key, "data": exc.data})
|
||||
@@ -91,7 +91,7 @@ async def update_workspace(
|
||||
code = (
|
||||
status.HTTP_404_NOT_FOUND
|
||||
if isinstance(exc, NotFoundError)
|
||||
else status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
else status.HTTP_422_UNPROCESSABLE_CONTENT
|
||||
)
|
||||
raise HTTPException(code, str(exc)) from exc
|
||||
return WorkspaceResponse.from_entity(ws)
|
||||
@@ -220,6 +220,6 @@ async def revoke_invitation(
|
||||
code = (
|
||||
status.HTTP_404_NOT_FOUND
|
||||
if isinstance(exc, NotFoundError)
|
||||
else status.HTTP_422_UNPROCESSABLE_ENTITY
|
||||
else status.HTTP_422_UNPROCESSABLE_CONTENT
|
||||
)
|
||||
raise HTTPException(code, str(exc)) from exc
|
||||
|
||||
Reference in New Issue
Block a user