Merge pull request #1603 from alphagov/sms-sender-for-one-off

Select text message sender for one off notifications
This commit is contained in:
Rebecca Law
2017-11-02 16:35:51 +00:00
committed by GitHub
7 changed files with 208 additions and 19 deletions

View File

@@ -27,6 +27,10 @@ from tests.conftest import (
mock_get_live_service,
multiple_reply_to_email_addresses,
no_reply_to_email_addresses,
multiple_sms_senders,
no_sms_senders,
multiple_sms_senders_with_diff_default,
multiple_sms_senders_no_inbound
)
template_types = ['email', 'sms']
@@ -43,6 +47,12 @@ test_non_spreadsheet_files = glob(path.join('tests', 'non_spreadsheet_files', '*
'Choose where to send replies',
'Select an email address that recipients can reply to'
),
(
mock_get_service_template,
multiple_sms_senders,
'Chose text message sender',
'Select a text message sender that the recipients can reply to'
)
])
def test_show_correct_title_and_description_for_sender_type(
client_request,
@@ -67,12 +77,47 @@ def test_show_correct_title_and_description_for_sender_type(
assert normalize_spaces(page.select_one('legend').text) == expected_description
@pytest.mark.parametrize('template_mock, sender_data', [
(
mock_get_service_email_template,
multiple_reply_to_email_addresses,
),
(
mock_get_service_template,
multiple_sms_senders_with_diff_default
),
(
mock_get_service_template,
multiple_sms_senders_no_inbound
)
])
def test_default_sender_is_checked_and_has_hint(
client_request,
service_one,
fake_uuid,
mock_get_service_email_template,
multiple_reply_to_email_addresses
template_mock,
sender_data,
mocker
):
template_mock(mocker)
sender_data(mocker)
page = client_request.get(
'.set_sender',
service_id=service_one['id'],
template_id=fake_uuid
)
assert page.select('.multiple-choice input')[0].has_attr('checked')
assert normalize_spaces(page.select_one('.multiple-choice label .block-label-hint').text) == "(Default)"
assert not page.select('.multiple-choice input')[1].has_attr('checked')
def test_default_inbound_sender_is_checked_and_has_hint_with_default_and_receives_text(
client_request,
service_one,
fake_uuid,
mock_get_service_template,
multiple_sms_senders
):
page = client_request.get(
'.set_sender',
@@ -81,18 +126,52 @@ def test_default_sender_is_checked_and_has_hint(
)
assert page.select('.multiple-choice input')[0].has_attr('checked')
assert normalize_spaces(page.select_one('.multiple-choice label .block-label-hint').text) == "Default"
assert normalize_spaces(
page.select_one('.multiple-choice label .block-label-hint').text) == "(Default and receives replies)"
assert not page.select('.multiple-choice input')[1].has_attr('checked')
assert not page.select('.multiple-choice input')[2].has_attr('checked')
def test_sms_sender_has_receives_replies_hint(
client_request,
service_one,
fake_uuid,
mock_get_service_template,
multiple_sms_senders
):
page = client_request.get(
'.set_sender',
service_id=service_one['id'],
template_id=fake_uuid
)
assert page.select('.multiple-choice input')[0].has_attr('checked')
assert normalize_spaces(
page.select_one('.multiple-choice label .block-label-hint').text) == "(Default and receives replies)"
assert not page.select('.multiple-choice input')[1].has_attr('checked')
assert not page.select('.multiple-choice input')[2].has_attr('checked')
@pytest.mark.parametrize('template_mock, sender_data', [
(
mock_get_service_email_template,
multiple_reply_to_email_addresses,
),
(
mock_get_service_template,
multiple_sms_senders
)
])
def test_sender_session_is_present_after_selected(
logged_in_client,
service_one,
fake_uuid,
mock_get_service_email_template,
multiple_reply_to_email_addresses
template_mock,
sender_data,
mocker
):
template_mock(mocker)
sender_data(mocker)
logged_in_client.post(
url_for('.set_sender', service_id=service_one['id'], template_id=fake_uuid),
data={'sender': '1234'}
@@ -107,6 +186,10 @@ def test_sender_session_is_present_after_selected(
mock_get_service_email_template,
no_reply_to_email_addresses,
),
(
mock_get_service_template,
no_sms_senders
)
])
def test_set_sender_redirects_if_no_sender_data(
logged_in_client,

View File

@@ -761,7 +761,7 @@ def test_api_ids_dont_show_on_option_pages_with_a_single_sender(
), (
'main.service_sms_senders',
multiple_sms_senders,
'Example (default and recieves replies) Change 1234',
'Example (default and receives replies) Change 1234',
'Example 2 Change 5678',
'Example 3 Change 9457'
),

View File

@@ -335,13 +335,14 @@ def test_should_not_allow_creation_of_a_template_without_correct_permission(
@pytest.mark.parametrize('fixture, expected_status_code', [
(mock_get_service_email_template, 200),
(mock_get_service_template, 302),
(mock_get_service_template, 200),
(mock_get_service_letter_template, 302),
])
def test_should_redirect_to_one_off_if_template_type_is_not_email(
def test_should_redirect_to_one_off_if_template_type_is_letter(
logged_in_client,
active_user_with_permissions,
multiple_reply_to_email_addresses,
multiple_sms_senders,
service_one,
fake_uuid,
mocker,