Release govoplan-campaign v0.1.28: stabilize saving, review and delivery recovery
Module Package Release / publish-packages (push) Successful in 12s

This commit is contained in:
2026-09-08 01:32:26 +02:00
parent 1b32427813
commit c51fc180fb
111 changed files with 6905 additions and 980 deletions
@@ -160,6 +160,42 @@ class CampaignOptimisticConcurrencyTests(unittest.TestCase):
assert current is not None
self.assertEqual(current.raw_json["campaign"]["name"], "First writer")
def test_metadata_save_does_not_erase_recorded_review(self) -> None:
review = {
"build_token": "server-build-token",
"inspection_complete": True,
"reviewed_message_keys": ["recipient-1"],
"issue_decisions": [],
"updated_at": "2026-07-21T00:00:00+00:00",
"updated_by_user_id": "reviewer-1",
}
with self.SessionLocal() as session:
version = session.get(CampaignVersion, "version-1")
assert version is not None
version.editor_state = {
"created_from": "minimal_campaign",
"review_send": review,
}
session.commit()
saved = update_campaign_version(
session,
tenant_id="tenant-1",
campaign_id="campaign-1",
version_id="version-1",
editor_state={"opt_ins": {"inline_guidance": False}},
expected_revision=version.edit_revision,
autosave=True,
)
self.assertEqual(saved.editor_state["review_send"], review)
with self.SessionLocal() as verification:
current = verification.get(CampaignVersion, "version-1")
assert current is not None
self.assertEqual(current.editor_state, {
"opt_ins": {"inline_guidance": False},
"review_send": review,
})
if __name__ == "__main__":
unittest.main()