mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-18 13:39:41 -04:00
Add tests to check permission-restricted broadcast pages
Some pages should only be shown to users who have permission to send or approve broadcasts. This commit adds a test to ensure that this is true, and that we don’t accidentally regress the checks for this permission.
This commit is contained in:
@@ -75,6 +75,63 @@ def test_broadcast_pages_403_without_permission(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.mark.parametrize('endpoint, extra_args, expected_get_status, expected_post_status', (
|
||||||
|
(
|
||||||
|
'.broadcast',
|
||||||
|
{'template_id': sample_uuid},
|
||||||
|
403, 405,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'.preview_broadcast_areas', {'broadcast_message_id': sample_uuid},
|
||||||
|
403, 405,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'.choose_broadcast_library', {'broadcast_message_id': sample_uuid},
|
||||||
|
403, 405,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'.choose_broadcast_area', {'broadcast_message_id': sample_uuid, 'library_slug': 'countries'},
|
||||||
|
403, 403,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'.remove_broadcast_area', {'broadcast_message_id': sample_uuid, 'area_slug': 'england'},
|
||||||
|
403, 405,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'.preview_broadcast_message', {'broadcast_message_id': sample_uuid},
|
||||||
|
403, 403,
|
||||||
|
),
|
||||||
|
(
|
||||||
|
'.cancel_broadcast_message', {'broadcast_message_id': sample_uuid},
|
||||||
|
403, 403,
|
||||||
|
),
|
||||||
|
))
|
||||||
|
def test_broadcast_pages_403_for_user_without_permission(
|
||||||
|
mocker,
|
||||||
|
client_request,
|
||||||
|
service_one,
|
||||||
|
active_user_view_permissions,
|
||||||
|
endpoint,
|
||||||
|
extra_args,
|
||||||
|
expected_get_status,
|
||||||
|
expected_post_status,
|
||||||
|
):
|
||||||
|
service_one['permissions'] += ['broadcast']
|
||||||
|
mocker.patch('app.user_api_client.get_user', return_value=active_user_view_permissions)
|
||||||
|
client_request.get(
|
||||||
|
endpoint,
|
||||||
|
service_id=SERVICE_ONE_ID,
|
||||||
|
_expected_status=expected_get_status,
|
||||||
|
**extra_args
|
||||||
|
)
|
||||||
|
client_request.post(
|
||||||
|
endpoint,
|
||||||
|
service_id=SERVICE_ONE_ID,
|
||||||
|
_expected_status=expected_post_status,
|
||||||
|
**extra_args
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_dashboard_redirects_to_broadcast_dashboard(
|
def test_dashboard_redirects_to_broadcast_dashboard(
|
||||||
client_request,
|
client_request,
|
||||||
service_one,
|
service_one,
|
||||||
@@ -94,6 +151,7 @@ def test_dashboard_redirects_to_broadcast_dashboard(
|
|||||||
def test_empty_broadcast_dashboard(
|
def test_empty_broadcast_dashboard(
|
||||||
client_request,
|
client_request,
|
||||||
service_one,
|
service_one,
|
||||||
|
active_user_view_permissions,
|
||||||
mock_get_no_broadcast_messages,
|
mock_get_no_broadcast_messages,
|
||||||
mock_get_service_templates_when_no_templates_exist,
|
mock_get_service_templates_when_no_templates_exist,
|
||||||
):
|
):
|
||||||
@@ -157,6 +215,7 @@ def test_broadcast_dashboard(
|
|||||||
def test_broadcast_dashboard_json(
|
def test_broadcast_dashboard_json(
|
||||||
logged_in_client,
|
logged_in_client,
|
||||||
service_one,
|
service_one,
|
||||||
|
active_user_view_permissions,
|
||||||
mock_get_broadcast_messages,
|
mock_get_broadcast_messages,
|
||||||
):
|
):
|
||||||
service_one['permissions'] += ['broadcast']
|
service_one['permissions'] += ['broadcast']
|
||||||
|
|||||||
Reference in New Issue
Block a user