mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-02 20:58:38 -04:00
Merge pull request #3270 from alphagov/broadcast-status-transition-tests
Broadcast status transition tests
This commit is contained in:
@@ -2219,10 +2219,7 @@ class BroadcastStatusType(db.Model):
|
||||
|
||||
# these are only the transitions we expect to administer via the API code.
|
||||
ALLOWED_STATUS_TRANSITIONS = {
|
||||
DRAFT: {
|
||||
PENDING_APPROVAL,
|
||||
BROADCASTING, # TODO: Remove me once we have pending approval flow put in properly
|
||||
},
|
||||
DRAFT: {PENDING_APPROVAL},
|
||||
PENDING_APPROVAL: {REJECTED, DRAFT, BROADCASTING},
|
||||
REJECTED: {DRAFT, PENDING_APPROVAL},
|
||||
BROADCASTING: {COMPLETED, CANCELLED},
|
||||
|
||||
@@ -804,10 +804,31 @@ def test_update_broadcast_message_status_rejects_approval_from_user_not_on_that_
|
||||
|
||||
@pytest.mark.parametrize('current_status, new_status', [
|
||||
(BroadcastStatusType.DRAFT, BroadcastStatusType.DRAFT),
|
||||
(BroadcastStatusType.DRAFT, BroadcastStatusType.BROADCASTING),
|
||||
(BroadcastStatusType.DRAFT, BroadcastStatusType.CANCELLED),
|
||||
|
||||
(BroadcastStatusType.PENDING_APPROVAL, BroadcastStatusType.PENDING_APPROVAL),
|
||||
(BroadcastStatusType.PENDING_APPROVAL, BroadcastStatusType.CANCELLED),
|
||||
(BroadcastStatusType.PENDING_APPROVAL, BroadcastStatusType.COMPLETED),
|
||||
|
||||
(BroadcastStatusType.REJECTED, BroadcastStatusType.REJECTED),
|
||||
(BroadcastStatusType.REJECTED, BroadcastStatusType.BROADCASTING),
|
||||
(BroadcastStatusType.REJECTED, BroadcastStatusType.CANCELLED),
|
||||
(BroadcastStatusType.REJECTED, BroadcastStatusType.COMPLETED),
|
||||
|
||||
(BroadcastStatusType.BROADCASTING, BroadcastStatusType.DRAFT),
|
||||
(BroadcastStatusType.BROADCASTING, BroadcastStatusType.PENDING_APPROVAL),
|
||||
(BroadcastStatusType.BROADCASTING, BroadcastStatusType.BROADCASTING),
|
||||
|
||||
(BroadcastStatusType.COMPLETED, BroadcastStatusType.DRAFT),
|
||||
(BroadcastStatusType.COMPLETED, BroadcastStatusType.PENDING_APPROVAL),
|
||||
(BroadcastStatusType.COMPLETED, BroadcastStatusType.BROADCASTING),
|
||||
(BroadcastStatusType.COMPLETED, BroadcastStatusType.CANCELLED),
|
||||
|
||||
(BroadcastStatusType.CANCELLED, BroadcastStatusType.DRAFT),
|
||||
pytest.param(BroadcastStatusType.DRAFT, BroadcastStatusType.BROADCASTING, marks=pytest.mark.xfail()),
|
||||
(BroadcastStatusType.CANCELLED, BroadcastStatusType.PENDING_APPROVAL),
|
||||
(BroadcastStatusType.CANCELLED, BroadcastStatusType.BROADCASTING),
|
||||
(BroadcastStatusType.CANCELLED, BroadcastStatusType.COMPLETED),
|
||||
])
|
||||
def test_update_broadcast_message_status_restricts_status_transitions_to_explicit_list(
|
||||
admin_request,
|
||||
|
||||
Reference in New Issue
Block a user