diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index 90ffbf421..a209980a3 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -1,3 +1,4 @@ +from datetime import datetime from functools import partial from unittest.mock import ANY, PropertyMock, call from urllib.parse import parse_qs, urlparse @@ -12,6 +13,7 @@ from notifications_utils.clients.zendesk.zendesk_client import ZendeskClient import app from app.utils import email_safe from tests import ( + invite_json, organisation_json, sample_uuid, service_json, @@ -24,23 +26,15 @@ from tests.conftest import ( create_active_user_no_api_key_permission, create_active_user_no_settings_permission, create_active_user_with_permissions, + create_letter_contact_block, + create_multiple_email_reply_to_addresses, + create_multiple_letter_contact_blocks, + create_multiple_sms_senders, create_platform_admin_user, - get_default_letter_contact_block, - get_default_reply_to_email_address, - get_default_sms_sender, - get_inbound_number_sms_sender, - get_non_default_letter_contact_block, - get_non_default_reply_to_email_address, - get_non_default_sms_sender, + create_reply_to_email_address, + create_sms_sender, mock_get_service_organisation, - multiple_letter_contact_blocks, - multiple_reply_to_email_addresses, - multiple_sms_senders, - no_letter_contact_blocks, - no_reply_to_email_addresses, - no_sms_senders, normalize_spaces, - sample_invite, ) FAKE_TEMPLATE_ID = uuid4() @@ -761,7 +755,7 @@ def test_should_check_for_sending_things_right( reply_to_email_addresses, expected_reply_to_checklist_item, active_user_with_permissions, - active_user_no_settings_permission + active_user_no_settings_permission, ): def _templates_by_type(template_type): return { @@ -776,11 +770,24 @@ def test_should_check_for_sending_things_right( [active_user_no_settings_permission] ) ) + invite_one = invite_json(id_=uuid4(), + from_user=service_one['users'][0], + service_id=service_one['id'], + email_address='invited_user@test.gov.uk', + permissions='view_activity,send_messages,manage_service,manage_api_keys', + created_at=datetime.utcnow(), + status='pending', + auth_type='sms_auth', + folder_permissions=[]) + + invite_two = invite_one.copy() + invite_two['permissions'] = 'view_activity' + mock_get_invites = mocker.patch( 'app.models.user.InvitedUsers.client', return_value=( - ([sample_invite(mocker, service_one)] * count_of_invites_with_manage_service) + - [sample_invite(mocker, service_one, permissions='view_activity')] + ([invite_one] * count_of_invites_with_manage_service) + + [invite_two] ) ) @@ -1951,12 +1958,14 @@ def test_api_ids_dont_show_on_option_pages_with_a_single_sender( @pytest.mark.parametrize( ( 'sender_list_page,' + 'endpoint_to_mock,' 'sample_data,' 'expected_items,' ), [( 'main.service_email_reply_to', - multiple_reply_to_email_addresses, + 'app.service_api_client.get_reply_to_email_addresses', + create_multiple_email_reply_to_addresses(), [ 'test@example.com (default) Change 1234', 'test2@example.com Change 5678', @@ -1964,7 +1973,8 @@ def test_api_ids_dont_show_on_option_pages_with_a_single_sender( ], ), ( 'main.service_letter_contact_details', - multiple_letter_contact_blocks, + 'app.service_api_client.get_letter_contacts', + create_multiple_letter_contact_blocks(), [ 'Blank Make default', '1 Example Street (default) Change 1234', @@ -1973,7 +1983,8 @@ def test_api_ids_dont_show_on_option_pages_with_a_single_sender( ], ), ( 'main.service_sms_senders', - multiple_sms_senders, + 'app.service_api_client.get_sms_senders', + create_multiple_sms_senders(), [ 'Example (default and receives replies) Change 1234', 'Example 2 Change 5678', @@ -1986,10 +1997,11 @@ def test_default_option_shows_for_default_sender( client_request, mocker, sender_list_page, + endpoint_to_mock, sample_data, expected_items, ): - sample_data(mocker) + mocker.patch(endpoint_to_mock, return_value=sample_data) rows = client_request.get( sender_list_page, @@ -2034,31 +2046,31 @@ def test_remove_default_from_default_letter_contact_block( ) -@pytest.mark.parametrize('sender_list_page, sample_data, expected_output', [ +@pytest.mark.parametrize('sender_list_page, endpoint_to_mock, expected_output', [ ( 'main.service_email_reply_to', - no_reply_to_email_addresses, + 'app.service_api_client.get_reply_to_email_addresses', 'You have not added any reply-to email addresses yet' ), ( 'main.service_letter_contact_details', - no_letter_contact_blocks, + 'app.service_api_client.get_letter_contacts', 'Blank (default)' ), ( 'main.service_sms_senders', - no_sms_senders, + 'app.service_api_client.get_sms_senders', 'You have not added any text message senders yet' ), ]) def test_no_senders_message_shows( client_request, sender_list_page, + endpoint_to_mock, expected_output, - sample_data, mocker ): - sample_data(mocker) + mocker.patch(endpoint_to_mock, return_value=[]) rows = client_request.get( sender_list_page, @@ -2145,15 +2157,15 @@ def test_incorrect_sms_sender_input( assert count_of_api_calls == 0 -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (no_reply_to_email_addresses, {}, True), - (multiple_reply_to_email_addresses, {}, False), - (multiple_reply_to_email_addresses, {"is_default": "y"}, True) +@pytest.mark.parametrize('reply_to_addresses, data, api_default_args', [ + ([], {}, True), + (create_multiple_email_reply_to_addresses(), {}, False), + (create_multiple_email_reply_to_addresses(), {"is_default": "y"}, True) ]) def test_add_reply_to_email_address_sends_test_notification( - mocker, client_request, fixture, data, api_default_args + mocker, client_request, reply_to_addresses, data, api_default_args ): - fixture(mocker) + mocker.patch('app.service_api_client.get_reply_to_email_addresses', return_value=reply_to_addresses) data['email_address'] = "test@example.com" mock_verify = mocker.patch( 'app.service_api_client.verify_reply_to_email_address', return_value={"data": {"id": "123"}} @@ -2266,20 +2278,21 @@ def test_add_reply_to_email_address_fails_if_notification_not_delivered_in_45_se mock_add_reply_to_email_address.assert_not_called() -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (no_letter_contact_blocks, {}, True), - (multiple_letter_contact_blocks, {}, False), - (multiple_letter_contact_blocks, {"is_default": "y"}, True) +@pytest.mark.parametrize('letter_contact_blocks, data, api_default_args', [ + ([], {}, True), # no existing letter contact blocks + (create_multiple_letter_contact_blocks(), {}, False), + (create_multiple_letter_contact_blocks(), {"is_default": "y"}, True) ]) def test_add_letter_contact( - fixture, + letter_contact_blocks, data, api_default_args, mocker, client_request, mock_add_letter_contact ): - fixture(mocker) + mocker.patch('app.service_api_client.get_letter_contacts', return_value=letter_contact_blocks) + data['letter_contact_block'] = "1 Example Street" client_request.post( 'main.service_add_letter_contact', @@ -2341,20 +2354,20 @@ def test_add_letter_contact_when_coming_from_template( ) -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (no_sms_senders, {}, True), - (multiple_sms_senders, {}, False), - (multiple_sms_senders, {"is_default": "y"}, True) +@pytest.mark.parametrize('sms_senders, data, api_default_args', [ + ([], {}, True), + (create_multiple_sms_senders(), {}, False), + (create_multiple_sms_senders(), {"is_default": "y"}, True) ]) def test_add_sms_sender( - fixture, + sms_senders, data, api_default_args, mocker, client_request, mock_add_sms_sender ): - fixture(mocker) + mocker.patch('app.service_api_client.get_sms_senders', return_value=sms_senders) data['sms_sender'] = "Example" client_request.post( 'main.service_add_sms_sender', @@ -2369,36 +2382,54 @@ def test_add_sms_sender( ) -@pytest.mark.parametrize('sender_page, fixture, checkbox_present', [ - ('main.service_add_email_reply_to', no_reply_to_email_addresses, False), - ('main.service_add_email_reply_to', multiple_reply_to_email_addresses, True), - ('main.service_add_letter_contact', no_letter_contact_blocks, False), - ('main.service_add_letter_contact', multiple_letter_contact_blocks, True) +@pytest.mark.parametrize('reply_to_addresses, checkbox_present', [ + ([], False), + (create_multiple_email_reply_to_addresses(), True), ]) -def test_default_box_doesnt_show_on_first_sender( - sender_page, - fixture, +def test_default_box_doesnt_show_on_first_email_sender( + reply_to_addresses, mocker, checkbox_present, client_request ): - fixture(mocker) + mocker.patch('app.service_api_client.get_reply_to_email_addresses', return_value=reply_to_addresses) + page = client_request.get( - sender_page, + 'main.service_add_email_reply_to', service_id=SERVICE_ONE_ID ) assert bool(page.select_one('[name=is_default]')) == checkbox_present -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (get_default_reply_to_email_address, {"is_default": "y"}, True), - (get_default_reply_to_email_address, {}, True), - (get_non_default_reply_to_email_address, {}, False), - (get_non_default_reply_to_email_address, {"is_default": "y"}, True) +@pytest.mark.parametrize('contact_blocks, checkbox_present', [ + ([], False), + (create_multiple_letter_contact_blocks(), True) +]) +def test_default_box_doesnt_show_on_first_letter_sender( + contact_blocks, + mocker, + checkbox_present, + client_request +): + mocker.patch('app.service_api_client.get_letter_contacts', return_value=contact_blocks) + + page = client_request.get( + 'main.service_add_letter_contact', + service_id=SERVICE_ONE_ID + ) + + assert bool(page.select_one('[name=is_default]')) == checkbox_present + + +@pytest.mark.parametrize('reply_to_address, data, api_default_args', [ + (create_reply_to_email_address(is_default=True), {"is_default": "y"}, True), + (create_reply_to_email_address(is_default=True), {}, True), + (create_reply_to_email_address(is_default=False), {}, False), + (create_reply_to_email_address(is_default=False), {"is_default": "y"}, True) ]) def test_edit_reply_to_email_address_sends_verification_notification_if_address_is_changed( - fixture, + reply_to_address, data, api_default_args, mocker, @@ -2408,7 +2439,7 @@ def test_edit_reply_to_email_address_sends_verification_notification_if_address_ mock_verify = mocker.patch( 'app.service_api_client.verify_reply_to_email_address', return_value={"data": {"id": "123"}} ) - fixture(mocker) + mocker.patch('app.service_api_client.get_reply_to_email_address', return_value=reply_to_address) data['email_address'] = "test@example.gov.uk" client_request.post( 'main.service_edit_email_reply_to', @@ -2419,14 +2450,14 @@ def test_edit_reply_to_email_address_sends_verification_notification_if_address_ mock_verify.assert_called_once_with(SERVICE_ONE_ID, "test@example.gov.uk") -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (get_default_reply_to_email_address, {"is_default": "y"}, True), - (get_default_reply_to_email_address, {}, True), - (get_non_default_reply_to_email_address, {}, False), - (get_non_default_reply_to_email_address, {"is_default": "y"}, True) +@pytest.mark.parametrize('reply_to_address, data, api_default_args', [ + (create_reply_to_email_address(), {"is_default": "y"}, True), + (create_reply_to_email_address(), {}, True), + (create_reply_to_email_address(is_default=False), {}, False), + (create_reply_to_email_address(is_default=False), {"is_default": "y"}, True) ]) def test_edit_reply_to_email_address_goes_straight_to_update_if_address_not_changed( - fixture, + reply_to_address, data, api_default_args, mocker, @@ -2434,7 +2465,7 @@ def test_edit_reply_to_email_address_goes_straight_to_update_if_address_not_chan client_request, mock_update_reply_to_email_address ): - fixture(mocker) + mocker.patch('app.service_api_client.get_reply_to_email_address', return_value=reply_to_address) mock_verify = mocker.patch('app.service_api_client.verify_reply_to_email_address') data['email_address'] = "test@example.com" client_request.post( @@ -2453,28 +2484,27 @@ def test_edit_reply_to_email_address_goes_straight_to_update_if_address_not_chan mock_verify.assert_not_called() -@pytest.mark.parametrize('fixture, expected_link_text, partial_href', [ +@pytest.mark.parametrize('reply_to_address, expected_link_text, partial_href', [ ( - get_non_default_reply_to_email_address, + create_reply_to_email_address(is_default=False), 'Delete', partial(url_for, 'main.service_confirm_delete_email_reply_to', reply_to_email_id=sample_uuid()), ), ( - get_default_reply_to_email_address, + create_reply_to_email_address(is_default=True), None, None, ), ]) def test_shows_delete_link_for_email_reply_to_address( mocker, - fixture, + reply_to_address, expected_link_text, partial_href, fake_uuid, client_request, ): - - fixture(mocker) + mocker.patch('app.service_api_client.get_reply_to_email_address', return_value=reply_to_address) page = client_request.get( 'main.service_edit_email_reply_to', @@ -2538,14 +2568,14 @@ def test_delete_reply_to_email_address( mock_delete.assert_called_once_with(service_id=SERVICE_ONE_ID, reply_to_email_id=fake_uuid) -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (get_default_letter_contact_block, {"is_default": "y"}, True), - (get_default_letter_contact_block, {}, True), - (get_non_default_letter_contact_block, {}, False), - (get_non_default_letter_contact_block, {"is_default": "y"}, True) +@pytest.mark.parametrize('letter_contact_block, data, api_default_args', [ + (create_letter_contact_block(), {"is_default": "y"}, True), + (create_letter_contact_block(), {}, True), + (create_letter_contact_block(is_default=False), {}, False), + (create_letter_contact_block(is_default=False), {"is_default": "y"}, True) ]) def test_edit_letter_contact_block( - fixture, + letter_contact_block, data, api_default_args, mocker, @@ -2553,7 +2583,7 @@ def test_edit_letter_contact_block( client_request, mock_update_letter_contact ): - fixture(mocker) + mocker.patch('app.service_api_client.get_letter_contact', return_value=letter_contact_block) data['letter_contact_block'] = "1 Example Street" client_request.post( 'main.service_edit_letter_contact', @@ -2615,14 +2645,14 @@ def test_delete_letter_contact_block( ) -@pytest.mark.parametrize('fixture, data, api_default_args', [ - (get_default_sms_sender, {"is_default": "y", "sms_sender": "test"}, True), - (get_default_sms_sender, {"sms_sender": "test"}, True), - (get_non_default_sms_sender, {"sms_sender": "test"}, False), - (get_non_default_sms_sender, {"is_default": "y", "sms_sender": "test"}, True) +@pytest.mark.parametrize('sms_sender, data, api_default_args', [ + (create_sms_sender(), {"is_default": "y", "sms_sender": "test"}, True), + (create_sms_sender(), {"sms_sender": "test"}, True), + (create_sms_sender(is_default=False), {"sms_sender": "test"}, False), + (create_sms_sender(is_default=False), {"is_default": "y", "sms_sender": "test"}, True) ]) def test_edit_sms_sender( - fixture, + sms_sender, data, api_default_args, mocker, @@ -2630,7 +2660,8 @@ def test_edit_sms_sender( client_request, mock_update_sms_sender ): - fixture(mocker) + mocker.patch('app.service_api_client.get_sms_sender', return_value=sms_sender) + client_request.post( 'main.service_edit_sms_sender', service_id=SERVICE_ONE_ID, @@ -2646,55 +2677,62 @@ def test_edit_sms_sender( ) -@pytest.mark.parametrize('sender_page, fixture, default_message, params, checkbox_present', [ +@pytest.mark.parametrize('sender_page, endpoint_to_mock, sender_details, default_message, params, checkbox_present', [ ( 'main.service_edit_email_reply_to', - get_default_reply_to_email_address, + 'app.service_api_client.get_reply_to_email_address', + create_reply_to_email_address(is_default=True), 'This is the default reply-to address for service one emails', 'reply_to_email_id', False ), ( 'main.service_edit_email_reply_to', - get_non_default_reply_to_email_address, + 'app.service_api_client.get_reply_to_email_address', + create_reply_to_email_address(is_default=False), 'This is the default reply-to address for service one emails', 'reply_to_email_id', True ), ( 'main.service_edit_letter_contact', - get_default_letter_contact_block, + 'app.service_api_client.get_letter_contact', + create_letter_contact_block(is_default=True), 'This is currently your default address for service one.', 'letter_contact_id', False ), ( 'main.service_edit_letter_contact', - get_non_default_letter_contact_block, + 'app.service_api_client.get_letter_contact', + create_letter_contact_block(is_default=False), 'THIS TEXT WONT BE TESTED', 'letter_contact_id', True ), ( 'main.service_edit_sms_sender', - get_default_sms_sender, + 'app.service_api_client.get_sms_sender', + create_sms_sender(is_default=True), 'This is the default text message sender.', 'sms_sender_id', False ), ( 'main.service_edit_sms_sender', - get_non_default_sms_sender, + 'app.service_api_client.get_sms_sender', + create_sms_sender(is_default=False), 'This is the default text message sender.', 'sms_sender_id', True ) ]) def test_default_box_shows_on_non_default_sender_details_while_editing( - fixture, fake_uuid, mocker, sender_page, + endpoint_to_mock, + sender_details, client_request, default_message, checkbox_present, @@ -2705,7 +2743,8 @@ def test_default_box_shows_on_non_default_sender_details_while_editing( } page_arguments[params] = fake_uuid - fixture(mocker) + mocker.patch(endpoint_to_mock, return_value=sender_details) + page = client_request.get( sender_page, **page_arguments @@ -2719,28 +2758,28 @@ def test_default_box_shows_on_non_default_sender_details_while_editing( ) -@pytest.mark.parametrize('fixture, expected_link_text, partial_href', [ +@pytest.mark.parametrize('sms_sender, expected_link_text, partial_href', [ ( - get_non_default_sms_sender, + create_sms_sender(is_default=False), 'Delete', partial(url_for, 'main.service_confirm_delete_sms_sender', sms_sender_id=sample_uuid()), ), ( - get_default_sms_sender, + create_sms_sender(is_default=True), None, None, ), ]) def test_shows_delete_link_for_sms_sender( mocker, - fixture, + sms_sender, expected_link_text, partial_href, fake_uuid, client_request, ): - fixture(mocker) + mocker.patch('app.service_api_client.get_sms_sender', return_value=sms_sender) page = client_request.get( 'main.service_edit_sms_sender', @@ -2785,20 +2824,20 @@ def test_confirm_delete_sms_sender( assert page.select_one('.banner-dangerous form')['method'] == 'post' -@pytest.mark.parametrize('fixture, expected_link_text', [ - (get_inbound_number_sms_sender, None), - (get_default_sms_sender, None), - (get_non_default_sms_sender, 'Delete'), +@pytest.mark.parametrize('sms_sender, expected_link_text', [ + (create_sms_sender(is_default=False, inbound_number_id='1234'), None), + (create_sms_sender(is_default=True), None), + (create_sms_sender(is_default=False), 'Delete'), ]) def test_inbound_sms_sender_is_not_deleteable( client_request, service_one, fake_uuid, - fixture, + sms_sender, expected_link_text, mocker ): - fixture(mocker) + mocker.patch('app.service_api_client.get_sms_sender', return_value=sms_sender) page = client_request.get( '.service_edit_sms_sender', @@ -2837,19 +2876,19 @@ def test_delete_sms_sender( mock_delete.assert_called_once_with(service_id=SERVICE_ONE_ID, sms_sender_id=fake_uuid) -@pytest.mark.parametrize('fixture, hide_textbox', [ - (get_inbound_number_sms_sender, True), - (get_default_sms_sender, False), +@pytest.mark.parametrize('sms_sender, hide_textbox', [ + (create_sms_sender(is_default=False, inbound_number_id='1234'), True), + (create_sms_sender(is_default=True), False), ]) def test_inbound_sms_sender_is_not_editable( client_request, service_one, fake_uuid, - fixture, + sms_sender, hide_textbox, mocker ): - fixture(mocker) + mocker.patch('app.service_api_client.get_sms_sender', return_value=sms_sender) page = client_request.get( '.service_edit_sms_sender', diff --git a/tests/app/main/views/test_templates.py b/tests/app/main/views/test_templates.py index 504e31c8e..969370d57 100644 --- a/tests/app/main/views/test_templates.py +++ b/tests/app/main/views/test_templates.py @@ -28,14 +28,12 @@ from tests.conftest import ( ElementNotFound, create_active_caseworking_user, create_active_user_view_permissions, + create_letter_contact_block, mock_get_service_email_template, mock_get_service_letter_template, mock_get_service_template, - no_letter_contact_blocks, normalize_spaces, ) -from tests.conftest import service_one as create_sample_service -from tests.conftest import single_letter_contact_block def test_should_show_empty_page_when_no_templates( @@ -715,11 +713,11 @@ def test_should_show_sms_template_with_downgraded_unicode_characters( assert rendered_msg in page.text -@pytest.mark.parametrize('mock_contact_block, expected_partial_url', ( - (no_letter_contact_blocks, partial( +@pytest.mark.parametrize('contact_block_data, expected_partial_url', ( + ([], partial( url_for, 'main.service_add_letter_contact', from_template=sample_uuid(), )), - (single_letter_contact_block, partial( + ([create_letter_contact_block()], partial( url_for, 'main.set_template_sender', template_id=sample_uuid(), )), )) @@ -730,11 +728,11 @@ def test_should_let_letter_contact_block_be_changed_for_the_template( client_request, service_one, fake_uuid, - mock_contact_block, + contact_block_data, expected_partial_url ): mocker.patch('app.main.views.templates.get_page_count_for_letter', return_value=1) - mock_contact_block(mocker) + mocker.patch('app.service_api_client.get_letter_contacts', return_value=contact_block_data) page = client_request.get( 'main.view_template', @@ -1427,9 +1425,10 @@ def test_should_403_when_edit_template_with_process_type_of_priority_for_non_pla mock_get_service_template, mock_update_service_template, fake_uuid, + service_one, ): - service = create_sample_service(active_user_with_permissions) - client.login(active_user_with_permissions, mocker, service) + service_one['users'] = [active_user_with_permissions] + client.login(active_user_with_permissions, mocker, service_one) mocker.patch('app.user_api_client.get_users_for_service', return_value=[active_user_with_permissions]) template_id = fake_uuid data = { @@ -1437,12 +1436,12 @@ def test_should_403_when_edit_template_with_process_type_of_priority_for_non_pla 'name': "new name", 'template_content': "template content with & entity", 'template_type': 'sms', - 'service': service['id'], + 'service': service_one['id'], 'process_type': 'priority' } response = client.post(url_for( '.edit_service_template', - service_id=service['id'], + service_id=service_one['id'], template_id=template_id), data=data) assert response.status_code == 403 mock_update_service_template.called == 0 @@ -1455,9 +1454,10 @@ def test_should_403_when_create_template_with_process_type_of_priority_for_non_p mock_get_service_template, mock_update_service_template, fake_uuid, + service_one, ): - service = create_sample_service(active_user_with_permissions) - client.login(active_user_with_permissions, mocker, service) + service_one['users'] = [active_user_with_permissions] + client.login(active_user_with_permissions, mocker, service_one) mocker.patch('app.user_api_client.get_users_for_service', return_value=[active_user_with_permissions]) template_id = fake_uuid data = { @@ -1465,12 +1465,12 @@ def test_should_403_when_create_template_with_process_type_of_priority_for_non_p 'name': "new name", 'template_content': "template content with & entity", 'template_type': 'sms', - 'service': service['id'], + 'service': service_one['id'], 'process_type': 'priority' } response = client.post(url_for( '.add_service_template', - service_id=service['id'], + service_id=service_one['id'], template_type='sms'), data=data) assert response.status_code == 403 mock_update_service_template.called == 0 @@ -2186,19 +2186,19 @@ def test_set_template_sender( ) -@pytest.mark.parametrize('fixture', [ - no_letter_contact_blocks, - single_letter_contact_block, +@pytest.mark.parametrize('contact_block_data', [ + [], # no letter contact blocks + [create_letter_contact_block()], ]) def test_add_sender_link_only_appears_on_services_with_no_senders( client_request, fake_uuid, mocker, - fixture, + contact_block_data, mock_get_service_letter_template, no_letter_contact_blocks ): - fixture(mocker) + mocker.patch('app.service_api_client.get_letter_contacts', return_value=contact_block_data) page = client_request.get( 'main.set_template_sender', service_id=SERVICE_ONE_ID, diff --git a/tests/conftest.py b/tests/conftest.py index 41f72b4af..a819ffa91 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -251,21 +251,6 @@ def get_default_letter_contact_block(mocker): return mocker.patch('app.service_api_client.get_letter_contact', side_effect=_get) -@pytest.fixture(scope='function') -def get_non_default_letter_contact_block(mocker): - def _get(service_id, letter_contact_id): - return { - 'id': '1234', - 'service_id': service_id, - 'contact_block': '1 Example Street', - 'is_default': False, - 'created_at': datetime.utcnow(), - 'updated_at': None - } - - return mocker.patch('app.service_api_client.get_letter_contact', side_effect=_get) - - @pytest.fixture(scope='function') def mock_add_letter_contact(mocker): def _add_letter_contact(service_id, contact_block, is_default=False): @@ -441,22 +426,6 @@ def get_non_default_sms_sender(mocker): return mocker.patch('app.service_api_client.get_sms_sender', side_effect=_get) -@pytest.fixture(scope='function') -def get_inbound_number_sms_sender(mocker): - def _get(service_id, sms_sender_id): - return { - 'id': '1234', - 'service_id': service_id, - 'sms_sender': 'GOVUK', - 'is_default': False, - 'created_at': datetime.utcnow(), - 'inbound_number_id': '1234', - 'updated_at': None - } - - return mocker.patch('app.service_api_client.get_sms_sender', side_effect=_get) - - @pytest.fixture(scope='function') def mock_add_sms_sender(mocker): def _add_sms_sender(service_id, sms_sender, is_default=False, inbound_number_id=None): @@ -3585,22 +3554,22 @@ def create_api_user_active(with_unique_id=False): def create_active_user_empty_permissions(with_unique_id=False): - user_data = {'id': str(uuid4()) if with_unique_id else sample_uuid(), - 'name': 'Test User With Empty Permissions', - 'password': 'somepassword', - 'password_changed_at': str(datetime.utcnow()), - 'email_address': 'test@user.gov.uk', - 'mobile_number': '07700 900763', - 'state': 'active', - 'failed_login_count': 0, - 'permissions': {}, - 'platform_admin': False, - 'auth_type': 'sms_auth', - 'organisations': [], - 'services': [SERVICE_ONE_ID], - 'current_session_id': None, - } - return user_data + return { + 'id': str(uuid4()) if with_unique_id else sample_uuid(), + 'name': 'Test User With Empty Permissions', + 'password': 'somepassword', + 'password_changed_at': str(datetime.utcnow()), + 'email_address': 'test@user.gov.uk', + 'mobile_number': '07700 900763', + 'state': 'active', + 'failed_login_count': 0, + 'permissions': {}, + 'platform_admin': False, + 'auth_type': 'sms_auth', + 'organisations': [], + 'services': [SERVICE_ONE_ID], + 'current_session_id': None, + } def create_active_user_with_permissions(with_unique_id=False): @@ -3764,3 +3733,143 @@ def create_platform_admin_user(with_unique_id=False): 'current_session_id': None, 'logged_in_at': None, } + + +def create_reply_to_email_address( + id_='1234', + service_id='abcd', + email_address='test@example.com', + is_default=True, + created_at=None, + updated_at=None +): + return { + 'id': id_, + 'service_id': service_id, + 'email_address': email_address, + 'is_default': is_default, + 'created_at': created_at, + 'updated_at': updated_at + } + + +def create_multiple_email_reply_to_addresses(service_id='abcd'): + return [ + { + 'id': '1234', + 'service_id': service_id, + 'email_address': 'test@example.com', + 'is_default': True, + 'created_at': datetime.utcnow(), + 'updated_at': None + }, { + 'id': '5678', + 'service_id': service_id, + 'email_address': 'test2@example.com', + 'is_default': False, + 'created_at': datetime.utcnow(), + 'updated_at': None + }, { + 'id': '9457', + 'service_id': service_id, + 'email_address': 'test3@example.com', + 'is_default': False, + 'created_at': datetime.utcnow(), + 'updated_at': None + } + ] + + +def create_sms_sender( + id_='1234', + service_id='abcd', + sms_sender='GOVUK', + is_default=True, + created_at=None, + inbound_number_id=None, + updated_at=None +): + return { + 'id': id_, + 'service_id': service_id, + 'sms_sender': sms_sender, + 'is_default': is_default, + 'created_at': created_at, + 'inbound_number_id': inbound_number_id, + 'updated_at': updated_at + } + + +def create_multiple_sms_senders(service_id='abcd'): + return [ + { + 'id': '1234', + 'service_id': service_id, + 'sms_sender': 'Example', + 'is_default': True, + 'created_at': datetime.utcnow(), + 'inbound_number_id': '1234', + 'updated_at': None + }, { + 'id': '5678', + 'service_id': service_id, + 'sms_sender': 'Example 2', + 'is_default': False, + 'created_at': datetime.utcnow(), + 'inbound_number_id': None, + 'updated_at': None + }, { + 'id': '9457', + 'service_id': service_id, + 'sms_sender': 'Example 3', + 'is_default': False, + 'created_at': datetime.utcnow(), + 'inbound_number_id': None, + 'updated_at': None + } + ] + + +def create_letter_contact_block( + id_='1234', + service_id='abcd', + contact_block='1 Example Street', + is_default=True, + created_at=None, + updated_at=None, +): + return { + 'id': id_, + 'service_id': service_id, + 'contact_block': contact_block, + 'is_default': is_default, + 'created_at': created_at, + 'updated_at': updated_at + } + + +def create_multiple_letter_contact_blocks(service_id='abcd'): + return [ + { + 'id': '1234', + 'service_id': service_id, + 'contact_block': '1 Example Street', + 'is_default': True, + 'created_at': datetime.utcnow(), + 'updated_at': None + }, { + 'id': '5678', + 'service_id': service_id, + 'contact_block': '2 Example Street', + 'is_default': False, + 'created_at': datetime.utcnow(), + 'updated_at': None + }, { + 'id': '9457', + 'service_id': service_id, + 'contact_block': '3 Example Street', + 'is_default': False, + 'created_at': datetime.utcnow(), + 'updated_at': None + } + ]