Release govoplan-campaign v0.1.28: stabilize saving, review and delivery recovery
Module Package Release / publish-packages (push) Successful in 12s
Module Package Release / publish-packages (push) Successful in 12s
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user