Add valid and invalid examples to SMS sender tests

I personally think it’s more robust to have a test also cover the
counter-fact.

And it’s easy to understand what’s going on if you can see the valid and
invalid examples side by side.
This commit is contained in:
Chris Hill-Scott
2018-01-31 10:35:55 +00:00
parent b11653fe08
commit 0ff2daab20

View File

@@ -809,24 +809,35 @@ def test_incorrect_letter_contact_block_input(
@pytest.mark.parametrize('sms_sender_input, expected_error', [
('elevenchars', None),
('', 'Cant be empty'),
('abcdefghijkhgkg', 'Enter 11 characters or fewer'),
(' ¯\_(ツ)_/¯ ', 'Use letters and numbers only'),
('blood.co.uk', 'Use letters and numbers only'),
])
def test_incorrect_sms_sender_input(
sms_sender_input,
expected_error,
client_request,
no_sms_senders
no_sms_senders,
mock_add_sms_sender,
):
page = client_request.post(
'main.service_add_sms_sender',
service_id=SERVICE_ONE_ID,
_data={'sms_sender': sms_sender_input},
_expected_status=200
_expected_status=(200 if expected_error else 302)
)
assert normalize_spaces(page.select_one('.error-message').text) == expected_error
error_message = page.select_one('.error-message')
count_of_api_calls = len(mock_add_sms_sender.call_args_list)
if not expected_error:
assert not error_message
assert count_of_api_calls == 1
else:
assert normalize_spaces(error_message.text) == expected_error
assert count_of_api_calls == 0
@pytest.mark.parametrize('fixture, data, api_default_args', [