Raise 403 when broadcasting on a suspended service

This mirrors the approach we take for jobs [1].

[1]: 3d71815956/app/job/rest.py (L146)
This commit is contained in:
Ben Thorner
2021-04-19 16:54:25 +01:00
parent a2af8b052a
commit 0507e8d9ad
2 changed files with 19 additions and 0 deletions

View File

@@ -176,6 +176,9 @@ def update_broadcast_message_status(service_id, broadcast_message_id):
validate(data, update_broadcast_message_status_schema)
broadcast_message = dao_get_broadcast_message_by_id_and_service_id(broadcast_message_id, service_id)
if not broadcast_message.service.active:
raise InvalidRequest("Updating broadcast message is not allowed: service is inactive ", 403)
new_status = data['status']
updating_user = get_user_by_id(data['created_by'])

View File

@@ -604,6 +604,22 @@ def test_update_broadcast_message_status_updates_details_but_does_not_queue_task
assert len(mock_task.mock_calls) == 0
def test_update_broadcast_message_status_aborts_if_service_is_suspended(
admin_request,
sample_broadcast_service,
):
bm = create_broadcast_message(service=sample_broadcast_service, content='test')
sample_broadcast_service.active = False
admin_request.post(
'broadcast_message.update_broadcast_message_status',
_data={'status': BroadcastStatusType.BROADCASTING, 'created_by': str(uuid.uuid4())},
service_id=sample_broadcast_service.id,
broadcast_message_id=bm.id,
_expected_status=403
)
def test_update_broadcast_message_status_creates_event_with_correct_content_if_broadcast_has_no_template(
admin_request,
sample_broadcast_service,