Merge pull request #1960 from alphagov/dont-validate-across-channels

Don’t validate phone numbers when sending emails
This commit is contained in:
Chris Hill-Scott
2018-03-16 14:59:42 +00:00
committed by GitHub
3 changed files with 34 additions and 18 deletions

View File

@@ -9,8 +9,8 @@ def test_form_class_not_mutated(app_):
method='POST',
data={'placeholder_value': ''}
):
form1 = get_placeholder_form_instance('name', {}, optional_placeholder=False)
form2 = get_placeholder_form_instance('city', {}, optional_placeholder=True)
form1 = get_placeholder_form_instance('name', {}, 'sms', optional_placeholder=False)
form2 = get_placeholder_form_instance('city', {}, 'sms', optional_placeholder=True)
assert not form1.validate_on_submit()
assert form2.validate_on_submit()
@@ -19,29 +19,36 @@ def test_form_class_not_mutated(app_):
assert str(form2.placeholder_value.label) == '<label for="placeholder_value">city</label>'
@pytest.mark.parametrize('service_can_send_international_sms, placeholder_name, value, expected_error', [
@pytest.mark.parametrize('service_can_send_international_sms, placeholder_name, template_type, value, expected_error', [
(False, 'email address', '', 'Cant be empty'),
(False, 'email address', '12345', 'Enter a valid email address'),
(False, 'email address', '“bad”@email-address.com', 'Enter a valid email address'),
(False, 'email address', 'test@example.com', None),
(False, 'email address', 'test@example.gov.uk', None),
(False, 'email address', 'email', '', 'Cant be empty'),
(False, 'email address', 'email', '12345', 'Enter a valid email address'),
(False, 'email address', 'email', '“bad”@email-address.com', 'Enter a valid email address'),
(False, 'email address', 'email', 'test@example.com', None),
(False, 'email address', 'email', 'test@example.gov.uk', None),
(False, 'phone number', '', 'Cant be empty'),
(False, 'phone number', '+1-2345-678890', 'Not a UK mobile number'),
(False, 'phone number', '07900900123', None),
(False, 'phone number', '+44(0)7900 900-123', None),
(False, 'phone number', 'sms', '', 'Cant be empty'),
(False, 'phone number', 'sms', '+1-2345-678890', 'Not a UK mobile number'),
(False, 'phone number', 'sms', '07900900123', None),
(False, 'phone number', 'sms', '+44(0)7900 900-123', None),
(True, 'phone number', '+123', 'Not enough digits'),
(True, 'phone number', '+44(0)7900 900-123', None),
(True, 'phone number', '+1-2345-678890', None),
(True, 'phone number', 'sms', '+123', 'Not enough digits'),
(True, 'phone number', 'sms', '+44(0)7900 900-123', None),
(True, 'phone number', 'sms', '+1-2345-678890', None),
(False, 'anything else', '', 'Cant be empty'),
(False, 'anything else', 'sms', '', 'Cant be empty'),
(False, 'anything else', 'email', '', 'Cant be empty'),
(True, 'phone number', 'sms', 'invalid', 'Must not contain letters or symbols'),
(True, 'phone number', 'email', 'invalid', None),
(True, 'phone number', 'letter', 'invalid', None),
(True, 'email address', 'sms', 'invalid', None),
])
def test_validates_recipients(
app_,
placeholder_name,
template_type,
value,
service_can_send_international_sms,
expected_error,
@@ -53,6 +60,7 @@ def test_validates_recipients(
form = get_placeholder_form_instance(
placeholder_name,
{},
template_type,
allow_international_phone_numbers=service_can_send_international_sms,
)