mirror of
https://github.com/GSA/notifications-admin.git
synced 2026-08-01 12:19:47 -04:00
Stop reply_to address fixtures from being called like functions
This stops most instances of the fixtures which return sms senders, email reply to addresses or letter contact blocks from being called as if they were functions in the tests by replacing them with functions which return the same results. This change allows a couple of fixtures which are now longer used to be deleted.
This commit is contained in:
@@ -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',
|
||||
|
||||
@@ -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 <em>content</em> 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 <em>content</em> 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,
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
|
||||
Reference in New Issue
Block a user