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
+ }
+ ]