Make calendar outbox invariants explicit

This commit is contained in:
2026-07-21 03:16:45 +02:00
parent a36a9e8c19
commit a52e35b52b

View File

@@ -980,7 +980,9 @@ def execute_calendar_outbox_operation(
)
return operation
except CalDAVPreconditionFailed as exc:
assert client is not None
if client is None:
_fail_operation(session, operation=operation, source=source, error=exc)
return operation
try:
matched, remote_etag = _remote_matches_operation(client, operation)
except Exception:
@@ -1142,7 +1144,8 @@ def retry_calendar_outbox_operation(
unavailable_reason = _operation_source_unavailable_reason(operation, source)
if unavailable_reason:
raise ValueError(unavailable_reason)
assert source is not None
if source is None:
raise RuntimeError("Calendar outbox source availability invariant was violated")
operation.status = "pending"
operation.attempt_count = 0
operation.available_at = utcnow()
@@ -1186,7 +1189,8 @@ def reconcile_calendar_outbox_operation(
unavailable_reason = _operation_source_unavailable_reason(operation, source)
if unavailable_reason:
raise ValueError(unavailable_reason)
assert source is not None
if source is None:
raise RuntimeError("Calendar outbox source availability invariant was violated")
if client_factory is None:
from govoplan_calendar.backend.service import caldav_client_for_source
@@ -1248,7 +1252,8 @@ def discard_calendar_outbox_operation(
source is None or source.tenant_id != operation.tenant_id
):
raise ValueError(unavailable_reason)
assert source is not None
if source is None:
raise RuntimeError("Calendar outbox source availability invariant was violated")
now = utcnow()
unresolved_chain = (
session.query(CalendarOutboxOperation)