mirror of
https://github.com/GSA/notifications-api.git
synced 2026-08-26 17:23:50 -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.
|
# these are only the transitions we expect to administer via the API code.
|
||||||
ALLOWED_STATUS_TRANSITIONS = {
|
ALLOWED_STATUS_TRANSITIONS = {
|
||||||
DRAFT: {
|
DRAFT: {PENDING_APPROVAL},
|
||||||
PENDING_APPROVAL,
|
|
||||||
BROADCASTING, # TODO: Remove me once we have pending approval flow put in properly
|
|
||||||
},
|
|
||||||
PENDING_APPROVAL: {REJECTED, DRAFT, BROADCASTING},
|
PENDING_APPROVAL: {REJECTED, DRAFT, BROADCASTING},
|
||||||
REJECTED: {DRAFT, PENDING_APPROVAL},
|
REJECTED: {DRAFT, PENDING_APPROVAL},
|
||||||
BROADCASTING: {COMPLETED, CANCELLED},
|
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', [
|
@pytest.mark.parametrize('current_status, new_status', [
|
||||||
(BroadcastStatusType.DRAFT, BroadcastStatusType.DRAFT),
|
(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.PENDING_APPROVAL),
|
||||||
|
(BroadcastStatusType.BROADCASTING, BroadcastStatusType.BROADCASTING),
|
||||||
|
|
||||||
|
(BroadcastStatusType.COMPLETED, BroadcastStatusType.DRAFT),
|
||||||
|
(BroadcastStatusType.COMPLETED, BroadcastStatusType.PENDING_APPROVAL),
|
||||||
(BroadcastStatusType.COMPLETED, BroadcastStatusType.BROADCASTING),
|
(BroadcastStatusType.COMPLETED, BroadcastStatusType.BROADCASTING),
|
||||||
|
(BroadcastStatusType.COMPLETED, BroadcastStatusType.CANCELLED),
|
||||||
|
|
||||||
(BroadcastStatusType.CANCELLED, BroadcastStatusType.DRAFT),
|
(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(
|
def test_update_broadcast_message_status_restricts_status_transitions_to_explicit_list(
|
||||||
admin_request,
|
admin_request,
|
||||||
|
|||||||
Reference in New Issue
Block a user