diff --git a/app/main/views/broadcast.py b/app/main/views/broadcast.py index 4c59c7cab..1123b5c5b 100644 --- a/app/main/views/broadcast.py +++ b/app/main/views/broadcast.py @@ -115,7 +115,7 @@ def get_broadcast_dashboard_partials(service_id): @main.route('/services//new-broadcast', methods=['GET', 'POST']) -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def new_broadcast(service_id): form = NewBroadcastForm() @@ -138,7 +138,7 @@ def new_broadcast(service_id): @main.route('/services//write-new-broadcast', methods=['GET', 'POST']) -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def write_new_broadcast(service_id): form = BroadcastTemplateForm() @@ -162,7 +162,7 @@ def write_new_broadcast(service_id): @main.route('/services//new-broadcast/') -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def broadcast(service_id, template_id): return redirect(url_for( @@ -176,7 +176,7 @@ def broadcast(service_id, template_id): @main.route('/services//broadcast//areas') -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def preview_broadcast_areas(service_id, broadcast_message_id): broadcast_message = BroadcastMessage.from_id( @@ -203,7 +203,7 @@ def preview_broadcast_areas(service_id, broadcast_message_id): @main.route('/services//broadcast//libraries') -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def choose_broadcast_library(service_id, broadcast_message_id): return render_template( @@ -220,7 +220,7 @@ def choose_broadcast_library(service_id, broadcast_message_id): '/services//broadcast//libraries/', methods=['GET', 'POST'], ) -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def choose_broadcast_area(service_id, broadcast_message_id, library_slug): broadcast_message = BroadcastMessage.from_id( @@ -280,7 +280,7 @@ def _get_broadcast_sub_area_back_link(service_id, broadcast_message_id, library_ '/services//broadcast//libraries//', methods=['GET', 'POST'], ) -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def choose_broadcast_sub_area(service_id, broadcast_message_id, library_slug, area_slug): broadcast_message = BroadcastMessage.from_id( @@ -332,7 +332,7 @@ def choose_broadcast_sub_area(service_id, broadcast_message_id, library_slug, ar @main.route('/services//broadcast//remove/') -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def remove_broadcast_area(service_id, broadcast_message_id, area_slug): BroadcastMessage.from_id( @@ -352,7 +352,7 @@ def remove_broadcast_area(service_id, broadcast_message_id, area_slug): '/services//broadcast//preview', methods=['GET', 'POST'], ) -@user_has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def preview_broadcast_message(service_id, broadcast_message_id): broadcast_message = BroadcastMessage.from_id( @@ -426,7 +426,7 @@ def view_broadcast(service_id, broadcast_message_id): @main.route('/services//current-alerts/', methods=['POST']) -@user_has_permissions('send_messages', 'approve_broadcasts', restrict_admin_usage=True) +@user_has_permissions('approve_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def approve_broadcast_message(service_id, broadcast_message_id): @@ -476,7 +476,7 @@ def approve_broadcast_message(service_id, broadcast_message_id): @main.route('/services//broadcast//reject') -@user_has_permissions('send_messages', 'create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True) +@user_has_permissions('create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True) @service_has_permission('broadcast') def reject_broadcast_message(service_id, broadcast_message_id): @@ -504,7 +504,7 @@ def reject_broadcast_message(service_id, broadcast_message_id): '/services//broadcast//cancel', methods=['GET', 'POST'], ) -@user_has_permissions('send_messages', 'create_broadcasts', 'approve_broadcasts', restrict_admin_usage=False) +@user_has_permissions('create_broadcasts', 'approve_broadcasts', restrict_admin_usage=False) @service_has_permission('broadcast') def cancel_broadcast_message(service_id, broadcast_message_id): broadcast_message = BroadcastMessage.from_id( diff --git a/app/templates/views/broadcast/dashboard.html b/app/templates/views/broadcast/dashboard.html index b5eb8220c..1a91026b5 100644 --- a/app/templates/views/broadcast/dashboard.html +++ b/app/templates/views/broadcast/dashboard.html @@ -17,7 +17,7 @@ 'current_broadcasts' ) }} - {% if current_user.has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) %} + {% if current_user.has_permissions('create_broadcasts', restrict_admin_usage=True) %}
{{ govukButton({ "element": "a", diff --git a/app/templates/views/broadcast/previous-broadcasts.html b/app/templates/views/broadcast/previous-broadcasts.html index 6b84ae6ff..ebeb44034 100644 --- a/app/templates/views/broadcast/previous-broadcasts.html +++ b/app/templates/views/broadcast/previous-broadcasts.html @@ -13,7 +13,7 @@ {% include('views/broadcast/partials/dashboard-table.html') %} - {% if current_user.has_permissions('send_messages', 'create_broadcasts', restrict_admin_usage=True) %} + {% if current_user.has_permissions('create_broadcasts', restrict_admin_usage=True) %}
{{ govukButton({ "element": "a", diff --git a/app/templates/views/broadcast/view-message.html b/app/templates/views/broadcast/view-message.html index 9bbe31de3..87919ce59 100644 --- a/app/templates/views/broadcast/view-message.html +++ b/app/templates/views/broadcast/view-message.html @@ -19,9 +19,9 @@ {% block service_page_title %} {% if broadcast_message.status == 'pending-approval' %} {% if broadcast_message.created_by and broadcast_message.created_by == current_user - and current_user.has_permissions('send_messages', 'create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True) %} + and current_user.has_permissions('create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True) %} {{ broadcast_message.template.name }} is waiting for approval - {% elif current_user.has_permissions('send_messages', 'approve_broadcasts', restrict_admin_usage=True) %} + {% elif current_user.has_permissions('approve_broadcasts', restrict_admin_usage=True) %} {% if broadcast_message.created_by %} {{ broadcast_message.created_by.name }} {% else %} @@ -43,7 +43,7 @@ {% if broadcast_message.status == 'pending-approval' %} {% if broadcast_message.created_by and broadcast_message.created_by == current_user - and current_user.has_permissions('send_messages', 'create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True) %} + and current_user.has_permissions('create_broadcasts', 'approve_broadcasts', restrict_admin_usage=True) %} - {% elif current_user.has_permissions('send_messages', 'approve_broadcasts', restrict_admin_usage=True) %} + {% elif current_user.has_permissions('approve_broadcasts', restrict_admin_usage=True) %} {% call form_wrapper(class="banner govuk-!-margin-bottom-6") %}

{% if broadcast_message.created_by %} diff --git a/tests/app/main/views/test_broadcast.py b/tests/app/main/views/test_broadcast.py index f211238db..2219358e7 100644 --- a/tests/app/main/views/test_broadcast.py +++ b/tests/app/main/views/test_broadcast.py @@ -14,7 +14,6 @@ from tests.conftest import ( create_active_user_approve_broadcasts_permissions, create_active_user_create_broadcasts_permissions, create_active_user_view_permissions, - create_active_user_with_permissions, create_platform_admin_user, normalize_spaces, ) @@ -477,19 +476,15 @@ def test_empty_broadcast_dashboard( @freeze_time('2020-02-20 02:20') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -]) def test_broadcast_dashboard( client_request, service_one, mock_get_broadcast_messages, mock_get_service_templates, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.broadcast_dashboard', service_id=SERVICE_ONE_ID, @@ -566,19 +561,15 @@ def test_broadcast_dashboard_json( @freeze_time('2020-02-20 02:20') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -]) def test_previous_broadcasts_page( client_request, service_one, mock_get_broadcast_messages, mock_get_service_templates, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.broadcast_dashboard_previous', service_id=SERVICE_ONE_ID, @@ -607,19 +598,15 @@ def test_previous_broadcasts_page( @freeze_time('2020-02-20 02:20') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -]) def test_rejected_broadcasts_page( client_request, service_one, mock_get_broadcast_messages, mock_get_service_templates, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.broadcast_dashboard_rejected', service_id=SERVICE_ONE_ID, @@ -646,17 +633,13 @@ def test_rejected_broadcasts_page( ) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_new_broadcast_page( client_request, service_one, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.new_broadcast', service_id=SERVICE_ONE_ID, @@ -688,10 +671,12 @@ def test_new_broadcast_page( def test_new_broadcast_page_redirects( client_request, service_one, + active_user_create_broadcasts_permission, value, expected_redirect_endpoint, ): service_one['permissions'] += ['broadcast'] + client_request.login(active_user_create_broadcasts_permission) client_request.post( '.new_broadcast', service_id=SERVICE_ONE_ID, @@ -706,17 +691,13 @@ def test_new_broadcast_page_redirects( ) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_write_new_broadcast_page( client_request, service_one, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.write_new_broadcast', service_id=SERVICE_ONE_ID, @@ -762,8 +743,10 @@ def test_write_new_broadcast_posts( service_one, mock_create_broadcast_message, fake_uuid, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] + client_request.login(active_user_create_broadcasts_permission) client_request.post( '.write_new_broadcast', service_id=SERVICE_ONE_ID, @@ -797,10 +780,12 @@ def test_write_new_broadcast_bad_content( service_one, mock_create_broadcast_message, fake_uuid, + active_user_create_broadcasts_permission, content, expected_error_message, ): service_one['permissions'] += ['broadcast'] + client_request.login(active_user_create_broadcasts_permission) page = client_request.post( '.write_new_broadcast', service_id=SERVICE_ONE_ID, @@ -818,19 +803,15 @@ def test_write_new_broadcast_bad_content( assert mock_create_broadcast_message.called is False -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_broadcast_page( client_request, service_one, fake_uuid, mock_create_broadcast_message, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) client_request.get( '.broadcast', service_id=SERVICE_ONE_ID, @@ -844,10 +825,6 @@ def test_broadcast_page( ), -@pytest.mark.parametrize('current_user', [ - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -]) @pytest.mark.parametrize('areas_selected, areas_listed, estimates', ( ([ 'ctry19-E92000001', @@ -914,7 +891,7 @@ def test_preview_broadcast_areas_page( areas_selected, areas_listed, estimates, - current_user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] mocker.patch( @@ -928,7 +905,7 @@ def test_preview_broadcast_areas_page( areas=areas_selected, ), ) - client_request.login(current_user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.preview_broadcast_areas', service_id=SERVICE_ONE_ID, @@ -948,10 +925,6 @@ def test_preview_broadcast_areas_page( ] == estimates -@pytest.mark.parametrize('current_user', [ - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -]) @pytest.mark.parametrize('polygons, expected_list_items', ( ( [ @@ -988,7 +961,7 @@ def test_preview_broadcast_areas_page_with_custom_polygons( fake_uuid, polygons, expected_list_items, - current_user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] mocker.patch( @@ -1003,7 +976,7 @@ def test_preview_broadcast_areas_page_with_custom_polygons( simple_polygons=polygons, ), ) - client_request.login(current_user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.preview_broadcast_areas', service_id=SERVICE_ONE_ID, @@ -1077,6 +1050,7 @@ def test_choose_broadcast_library_page( client_request, service_one, fake_uuid, + active_user_create_broadcasts_permission, areas, expected_list, ): @@ -1092,6 +1066,7 @@ def test_choose_broadcast_library_page( areas=areas, ), ) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.choose_broadcast_library', service_id=SERVICE_ONE_ID, @@ -1115,16 +1090,12 @@ def test_choose_broadcast_library_page( ) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_suggested_area_has_correct_link( mocker, client_request, service_one, fake_uuid, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] mocker.patch( @@ -1140,7 +1111,7 @@ def test_suggested_area_has_correct_link( ], ), ) - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.choose_broadcast_library', service_id=SERVICE_ONE_ID, @@ -1158,19 +1129,15 @@ def test_suggested_area_has_correct_link( ) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_choose_broadcast_area_page( client_request, service_one, mock_get_draft_broadcast_message, fake_uuid, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.choose_broadcast_area', service_id=SERVICE_ONE_ID, @@ -1194,19 +1161,15 @@ def test_choose_broadcast_area_page( ] -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_choose_broadcast_area_page_for_area_with_sub_areas( client_request, service_one, mock_get_draft_broadcast_message, fake_uuid, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.choose_broadcast_area', service_id=SERVICE_ONE_ID, @@ -1242,19 +1205,15 @@ def test_choose_broadcast_area_page_for_area_with_sub_areas( assert choices[-1] == (partial_url_for(area_slug='lad20-E06000014'), 'York',) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_choose_broadcast_sub_area_page_for_district_shows_checkboxes_for_wards( client_request, service_one, mock_get_draft_broadcast_message, fake_uuid, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( 'main.choose_broadcast_sub_area', service_id=SERVICE_ONE_ID, @@ -1316,11 +1275,13 @@ def test_choose_broadcast_sub_area_page_for_district_has_back_link( client_request, service_one, mock_get_draft_broadcast_message, + active_user_create_broadcasts_permission, prev_area_slug, expected_back_link_url, expected_back_link_extra_kwargs ): service_one['permissions'] += ['broadcast'] + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( 'main.choose_broadcast_sub_area', service_id=SERVICE_ONE_ID, @@ -1347,8 +1308,11 @@ def test_choose_broadcast_sub_area_page_for_county_shows_links_for_districts( service_one, mock_get_draft_broadcast_message, fake_uuid, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] + + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( 'main.choose_broadcast_sub_area', service_id=SERVICE_ONE_ID, @@ -1400,10 +1364,6 @@ def test_choose_broadcast_sub_area_page_for_county_shows_links_for_districts( assert districts[-1][1] == 'Tunbridge Wells' -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_add_broadcast_area( client_request, service_one, @@ -1411,7 +1371,7 @@ def test_add_broadcast_area( mock_update_broadcast_message, fake_uuid, mocker, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] polygon_class = namedtuple("polygon_class", ["as_coordinate_pairs_lat_long"]) @@ -1419,7 +1379,7 @@ def test_add_broadcast_area( polygons = polygon_class(as_coordinate_pairs_lat_long=coordinates) mocker.patch('app.models.broadcast_message.BroadcastMessage.get_simple_polygons', return_value=polygons) - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) client_request.post( '.choose_broadcast_area', service_id=SERVICE_ONE_ID, @@ -1466,7 +1426,8 @@ def test_add_broadcast_sub_area_district_view( fake_uuid, post_data, expected_selected, - mocker + mocker, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] polygon_class = namedtuple("polygon_class", ["as_coordinate_pairs_lat_long"]) @@ -1474,6 +1435,7 @@ def test_add_broadcast_sub_area_district_view( polygons = polygon_class(as_coordinate_pairs_lat_long=coordinates) mocker.patch('app.models.broadcast_message.BroadcastMessage.get_simple_polygons', return_value=polygons) + client_request.login(active_user_create_broadcasts_permission) client_request.post( '.choose_broadcast_sub_area', service_id=SERVICE_ONE_ID, @@ -1503,6 +1465,7 @@ def test_add_broadcast_sub_area_county_view( mock_update_broadcast_message, fake_uuid, mocker, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] polygon_class = namedtuple("polygon_class", ["as_coordinate_pairs_lat_long"]) @@ -1510,6 +1473,7 @@ def test_add_broadcast_sub_area_county_view( polygons = polygon_class(as_coordinate_pairs_lat_long=coordinates) mocker.patch('app.models.broadcast_message.BroadcastMessage.get_simple_polygons', return_value=polygons) + client_request.login(active_user_create_broadcasts_permission) client_request.post( '.choose_broadcast_sub_area', service_id=SERVICE_ONE_ID, @@ -1534,10 +1498,6 @@ def test_add_broadcast_sub_area_county_view( ) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_remove_broadcast_area_page( client_request, service_one, @@ -1545,7 +1505,7 @@ def test_remove_broadcast_area_page( mock_update_broadcast_message, fake_uuid, mocker, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] polygon_class = namedtuple("polygon_class", ["as_coordinate_pairs_lat_long"]) @@ -1553,7 +1513,7 @@ def test_remove_broadcast_area_page( polygons = polygon_class(as_coordinate_pairs_lat_long=coordinates) mocker.patch('app.models.broadcast_message.BroadcastMessage.get_simple_polygons', return_value=polygons) - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) client_request.get( '.remove_broadcast_area', service_id=SERVICE_ONE_ID, @@ -1576,20 +1536,16 @@ def test_remove_broadcast_area_page( ) -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_create_broadcasts_permissions(), -)) def test_preview_broadcast_message_page( client_request, service_one, mock_get_draft_broadcast_message, mock_get_broadcast_template, fake_uuid, - user, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_create_broadcasts_permission) page = client_request.get( '.preview_broadcast_message', service_id=SERVICE_ONE_ID, @@ -1630,8 +1586,10 @@ def test_start_broadcasting( mock_get_broadcast_template, mock_update_broadcast_message_status, fake_uuid, + active_user_create_broadcasts_permission, ): service_one['permissions'] += ['broadcast'] + client_request.login(active_user_create_broadcasts_permission) client_request.post( '.preview_broadcast_message', service_id=SERVICE_ONE_ID, @@ -1713,7 +1671,7 @@ def test_view_broadcast_message_page( mocker, client_request, service_one, - active_user_with_permissions, + active_user_view_permissions, mock_get_broadcast_template, fake_uuid, endpoint, @@ -1734,7 +1692,7 @@ def test_view_broadcast_message_page( ), ) mocker.patch('app.user_api_client.get_user', side_effect=[ - active_user_with_permissions, + active_user_view_permissions, user_json(name='Alice'), user_json(name='Bob'), user_json(name='Carol'), @@ -1789,7 +1747,7 @@ def test_view_broadcast_message_shows_correct_highlighted_navigation( mocker, client_request, service_one, - active_user_with_permissions, + active_user_approve_broadcasts_permission, mock_get_broadcast_template, fake_uuid, endpoint, @@ -1814,6 +1772,7 @@ def test_view_broadcast_message_shows_correct_highlighted_navigation( ) service_one['permissions'] += ['broadcast'] + client_request.login(active_user_approve_broadcasts_permission) page = client_request.get( endpoint, service_id=SERVICE_ONE_ID, @@ -1834,17 +1793,13 @@ def test_view_broadcast_message_shows_correct_highlighted_navigation( @freeze_time('2020-02-22T22:22:22.000000') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -]) def test_view_pending_broadcast( mocker, client_request, service_one, mock_get_broadcast_template, fake_uuid, - user, + active_user_approve_broadcasts_permission, ): broadcast_creator = create_active_user_create_broadcasts_permissions(with_unique_id=True) mocker.patch( @@ -1858,9 +1813,9 @@ def test_view_pending_broadcast( status='pending-approval', ), ) - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) mocker.patch('app.user_api_client.get_user', side_effect=[ - user, # Current user + active_user_approve_broadcasts_permission, # Current user broadcast_creator, # User who created broadcast ]) service_one['permissions'] += ['broadcast'] @@ -1895,16 +1850,12 @@ def test_view_pending_broadcast( @freeze_time('2020-02-22T22:22:22.000000') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -]) def test_view_pending_broadcast_without_template( mocker, client_request, service_one, fake_uuid, - user, + active_user_approve_broadcasts_permission, ): broadcast_creator = create_active_user_create_broadcasts_permissions(with_unique_id=True) mocker.patch( @@ -1920,9 +1871,9 @@ def test_view_pending_broadcast_without_template( content='Uh-oh', ), ) - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) mocker.patch('app.user_api_client.get_user', side_effect=[ - user, # Current user + active_user_approve_broadcasts_permission, # Current user broadcast_creator, # User who created broadcast ]) service_one['permissions'] += ['broadcast'] @@ -1949,16 +1900,12 @@ def test_view_pending_broadcast_without_template( @freeze_time('2020-02-22T22:22:22.000000') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -]) def test_view_pending_broadcast_from_api_call( mocker, client_request, service_one, fake_uuid, - user, + active_user_approve_broadcasts_permission, ): mocker.patch( 'app.broadcast_message_api_client.get_broadcast_message', @@ -1975,7 +1922,7 @@ def test_view_pending_broadcast_from_api_call( ) service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) page = client_request.get( '.view_current_broadcast', service_id=SERVICE_ONE_ID, @@ -1997,10 +1944,6 @@ def test_view_pending_broadcast_from_api_call( ) -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -]) @pytest.mark.parametrize('channel, expected_label_text', ( ('test', ( 'I understand this will alert anyone who has switched on the test channel' @@ -2021,7 +1964,7 @@ def test_checkbox_to_confirm_non_training_broadcasts( client_request, service_one, fake_uuid, - user, + active_user_approve_broadcasts_permission, channel, expected_label_text, ): @@ -2040,7 +1983,7 @@ def test_checkbox_to_confirm_non_training_broadcasts( service_one['allowed_broadcast_provider'] = 'all' service_one['broadcast_channel'] = channel - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) page = client_request.get( '.view_current_broadcast', service_id=SERVICE_ONE_ID, @@ -2058,10 +2001,6 @@ def test_checkbox_to_confirm_non_training_broadcasts( @freeze_time('2020-02-22T22:22:22.000000') -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -]) def test_confirm_approve_non_training_broadcasts_errors_if_not_ticked( mocker, client_request, @@ -2069,7 +2008,7 @@ def test_confirm_approve_non_training_broadcasts_errors_if_not_ticked( fake_uuid, mock_update_broadcast_message, mock_update_broadcast_message_status, - user, + active_user_approve_broadcasts_permission, ): mocker.patch( 'app.broadcast_message_api_client.get_broadcast_message', @@ -2086,7 +2025,7 @@ def test_confirm_approve_non_training_broadcasts_errors_if_not_ticked( service_one['allowed_broadcast_provider'] = 'all' service_one['broadcast_channel'] = 'severe' - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) page = client_request.post( '.view_current_broadcast', service_id=SERVICE_ONE_ID, @@ -2106,17 +2045,13 @@ def test_confirm_approve_non_training_broadcasts_errors_if_not_ticked( @freeze_time('2020-02-22T22:22:22.000000') -@pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -)) def test_can_approve_own_broadcast_in_training_mode( mocker, client_request, service_one, mock_get_broadcast_template, fake_uuid, - user, + active_user_approve_broadcasts_permission, ): mocker.patch( 'app.broadcast_message_api_client.get_broadcast_message', @@ -2129,10 +2064,10 @@ def test_can_approve_own_broadcast_in_training_mode( status='pending-approval', ), ) - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) mocker.patch('app.user_api_client.get_user', side_effect=[ - user, # Current user - user, # User who created broadcast (the same) + active_user_approve_broadcasts_permission, # Current user + active_user_approve_broadcasts_permission, # User who created broadcast (the same) ]) service_one['permissions'] += ['broadcast'] @@ -2187,7 +2122,6 @@ def test_can_approve_own_broadcast_in_training_mode( @freeze_time('2020-02-22T22:22:22.000000') @pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), create_active_user_approve_broadcasts_permissions(), create_active_user_create_broadcasts_permissions(), ]) @@ -2251,7 +2185,7 @@ def test_view_only_user_cant_approve_broadcast_created_by_someone_else( mocker, client_request, service_one, - active_user_with_permissions, + active_user_create_broadcasts_permission, active_user_view_permissions, platform_admin_user_no_service_permissions, mock_get_broadcast_template, @@ -2275,7 +2209,7 @@ def test_view_only_user_cant_approve_broadcast_created_by_someone_else( current_user = active_user_view_permissions mocker.patch('app.user_api_client.get_user', side_effect=[ current_user, # Current user - active_user_with_permissions, # User who created broadcast + active_user_create_broadcasts_permission, # User who created broadcast ]) service_one['permissions'] += ['broadcast'] @@ -2409,23 +2343,23 @@ def test_user_without_approve_permission_cant_approve_broadcast_they_created( client_request, service_one, fake_uuid, + active_user_create_broadcasts_permission, ): - current_user = create_active_user_create_broadcasts_permissions() mocker.patch( 'app.broadcast_message_api_client.get_broadcast_message', return_value=broadcast_message_json( id_=fake_uuid, service_id=SERVICE_ONE_ID, template_id=fake_uuid, - created_by_id=current_user['id'], + created_by_id=active_user_create_broadcasts_permission['id'], finishes_at=None, status='pending-approval', ), ) - client_request.login(current_user) + client_request.login(active_user_create_broadcasts_permission) mocker.patch('app.user_api_client.get_user', side_effect=[ - current_user, # Current user - current_user, # Same created the broadcast + active_user_create_broadcasts_permission, # Current user + active_user_create_broadcasts_permission, # Same created the broadcast ]) service_one['permissions'] += ['broadcast'] @@ -2454,10 +2388,6 @@ def test_user_without_approve_permission_cant_approve_broadcast_they_created( ) -@pytest.mark.parametrize('user', [ - create_active_user_with_permissions(), - create_active_user_approve_broadcasts_permissions(), -]) @pytest.mark.parametrize( 'trial_mode, initial_status, post_data, expected_approval, expected_redirect', ( @@ -2502,7 +2432,7 @@ def test_confirm_approve_broadcast( fake_uuid, mock_update_broadcast_message, mock_update_broadcast_message_status, - user, + active_user_approve_broadcasts_permission, initial_status, post_data, expected_approval, @@ -2523,7 +2453,7 @@ def test_confirm_approve_broadcast( service_one['restricted'] = trial_mode service_one['permissions'] += ['broadcast'] - client_request.login(user) + client_request.login(active_user_approve_broadcasts_permission) client_request.post( '.view_current_broadcast', service_id=SERVICE_ONE_ID, @@ -2555,7 +2485,6 @@ def test_confirm_approve_broadcast( @pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), create_active_user_create_broadcasts_permissions(), create_active_user_approve_broadcasts_permissions(), )) @@ -2604,6 +2533,10 @@ def test_reject_broadcast( ) +@pytest.mark.parametrize('user', [ + create_active_user_create_broadcasts_permissions(), + create_active_user_approve_broadcasts_permissions(), +]) @pytest.mark.parametrize('initial_status', ( 'draft', 'rejected', @@ -2619,6 +2552,7 @@ def test_cant_reject_broadcast_in_wrong_state( fake_uuid, mock_update_broadcast_message, mock_update_broadcast_message_status, + user, initial_status, ): mocker.patch( @@ -2634,6 +2568,7 @@ def test_cant_reject_broadcast_in_wrong_state( ) service_one['permissions'] += ['broadcast'] + client_request.login(user) client_request.get( '.reject_broadcast_message', service_id=SERVICE_ONE_ID, @@ -2671,7 +2606,6 @@ def test_no_view_page_for_draft( @pytest.mark.parametrize('user', ( - create_active_user_with_permissions(), create_active_user_create_broadcasts_permissions(), create_active_user_approve_broadcasts_permissions(), create_platform_admin_user(), @@ -2682,7 +2616,6 @@ def test_cancel_broadcast( mock_get_live_broadcast_message, mock_get_broadcast_template, mock_update_broadcast_message_status, - platform_admin_user_no_service_permissions, fake_uuid, user, ): @@ -2717,7 +2650,6 @@ def test_cancel_broadcast( @pytest.mark.parametrize('user', [ create_platform_admin_user(), - create_active_user_with_permissions(), create_active_user_create_broadcasts_permissions(), create_active_user_approve_broadcasts_permissions(), ]) @@ -2762,9 +2694,11 @@ def test_cant_cancel_broadcast_in_a_different_state( mock_get_draft_broadcast_message, mock_update_broadcast_message_status, fake_uuid, + active_user_create_broadcasts_permission, method, ): service_one['permissions'] += ['broadcast'] + client_request.login(active_user_create_broadcasts_permission) getattr(client_request, method)( '.cancel_broadcast_message', service_id=SERVICE_ONE_ID, diff --git a/tests/conftest.py b/tests/conftest.py index 8f4ce13a5..8ff0bb568 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1127,6 +1127,16 @@ def active_user_with_permissions(fake_uuid): return create_active_user_with_permissions() +@pytest.fixture(scope='function') +def active_user_create_broadcasts_permission(): + return create_active_user_create_broadcasts_permissions() + + +@pytest.fixture(scope='function') +def active_user_approve_broadcasts_permission(): + return create_active_user_approve_broadcasts_permissions() + + @pytest.fixture(scope='function') def active_user_broadcast_permissions(fake_uuid): return create_service_one_user(