Files
notifications-admin/tests/app/main/forms/test_placeholder_form.py
T

71 lines
2.6 KiB
Python
Raw Normal View History

import pytest
2018-02-20 11:22:17 +00:00
from app.main.forms import get_placeholder_form_instance
2021-05-12 14:57:21 +01:00
def test_form_class_not_mutated(notify_admin):
2021-05-12 14:57:21 +01:00
with notify_admin.test_request_context(
method='POST',
data={'placeholder_value': ''}
2017-10-18 14:51:26 +01:00
):
form1 = get_placeholder_form_instance('name', {}, 'sms')
form2 = get_placeholder_form_instance('city', {}, 'sms')
assert not form1.validate_on_submit()
assert not form2.validate_on_submit()
assert str(form1.placeholder_value.label) == '<label for="placeholder_value">name</label>'
assert str(form2.placeholder_value.label) == '<label for="placeholder_value">city</label>'
@pytest.mark.parametrize('service_can_send_international_sms, placeholder_name, template_type, value, expected_error', [
2019-09-13 16:00:56 +01:00
(False, 'email address', 'email', '', 'Cannot 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),
2022-08-05 00:25:03 -07:00
(False, 'email address', 'email', 'test@example.gsa.gov', None),
2019-09-13 16:00:56 +01:00
(False, 'phone number', 'sms', '', 'Cannot be empty'),
(False, 'phone number', 'sms', '+(44) 7700-900 855', 'Not a US number'),
(False, 'phone number', 'sms', '2028675309', None),
(False, 'phone number', 'sms', '+1 (202) 867-5309', 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),
2019-09-13 16:00:56 +01:00
(False, 'anything else', 'sms', '', 'Cannot be empty'),
(False, 'anything else', 'email', '', 'Cannot be empty'),
(True, 'phone number', 'sms', 'invalid', 'The string supplied did not seem to be a phone number.'),
(True, 'phone number', 'email', 'invalid', None),
(True, 'email address', 'sms', 'invalid', None),
])
def test_validates_recipients(
2021-05-12 14:57:21 +01:00
notify_admin,
placeholder_name,
template_type,
value,
service_can_send_international_sms,
expected_error,
):
2021-05-12 14:57:21 +01:00
with notify_admin.test_request_context(
method='POST',
data={'placeholder_value': value}
):
form = get_placeholder_form_instance(
placeholder_name,
{},
template_type,
allow_international_phone_numbers=service_can_send_international_sms,
)
if expected_error:
assert not form.validate_on_submit()
assert form.placeholder_value.errors[0] == expected_error
else:
assert form.validate_on_submit()