From 0ff2daab20db291d5c6cda5cde9977a2a03bec11 Mon Sep 17 00:00:00 2001 From: Chris Hill-Scott Date: Wed, 31 Jan 2018 10:35:55 +0000 Subject: [PATCH] Add valid and invalid examples to SMS sender tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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. --- tests/app/main/views/test_service_settings.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tests/app/main/views/test_service_settings.py b/tests/app/main/views/test_service_settings.py index cfe3b47e7..79cb54681 100644 --- a/tests/app/main/views/test_service_settings.py +++ b/tests/app/main/views/test_service_settings.py @@ -809,24 +809,35 @@ def test_incorrect_letter_contact_block_input( @pytest.mark.parametrize('sms_sender_input, expected_error', [ + ('elevenchars', None), ('', 'Can’t 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', [