From a3978f8a5f7521bd1fa3c7e07a013b3d638e7016 Mon Sep 17 00:00:00 2001 From: Katie Smith Date: Tue, 7 Jan 2020 10:47:00 +0000 Subject: [PATCH] Use fixtures that get services in Pytest 5 compatible way --- tests/app/main/views/test_api_integration.py | 21 +++++----- tests/app/main/views/test_send.py | 41 ++++++++++---------- 2 files changed, 32 insertions(+), 30 deletions(-) diff --git a/tests/app/main/views/test_api_integration.py b/tests/app/main/views/test_api_integration.py index 5ba9a68c1..eb078db7c 100644 --- a/tests/app/main/views/test_api_integration.py +++ b/tests/app/main/views/test_api_integration.py @@ -11,10 +11,7 @@ from tests.conftest import ( SERVICE_ONE_ID, mock_get_empty_service_callback_api, mock_get_empty_service_inbound_api, - mock_get_live_service, mock_get_notifications, - mock_get_service, - mock_get_service_with_letters, mock_get_valid_service_callback_api, mock_get_valid_service_inbound_api, normalize_spaces, @@ -210,8 +207,8 @@ def test_should_show_api_keys_page( mock_get_api_keys.assert_called_once_with(SERVICE_ONE_ID) -@pytest.mark.parametrize('service_mock, expected_options', [ - (mock_get_service, [ +@pytest.mark.parametrize('restricted, can_send_letters, expected_options', [ + (True, False, [ ( 'Live – sends to anyone ' 'Not available because your service is in trial mode' @@ -219,12 +216,12 @@ def test_should_show_api_keys_page( 'Team and whitelist – limits who you can send to', 'Test – pretends to send messages', ]), - (mock_get_live_service, [ + (False, False, [ 'Live – sends to anyone', 'Team and whitelist – limits who you can send to', 'Test – pretends to send messages', ]), - (mock_get_service_with_letters, [ + (False, True, [ 'Live – sends to anyone', ( 'Team and whitelist – limits who you can send to ' @@ -238,10 +235,16 @@ def test_should_show_create_api_key_page( mocker, api_user_active, mock_get_api_keys, - service_mock, + restricted, + can_send_letters, expected_options, + service_one, ): - service_mock(mocker, api_user_active) + service_one['restricted'] = restricted + if can_send_letters: + service_one['permissions'].append('letter') + + mocker.patch('app.service_api_client.get_service', return_value={'data': service_one}) page = client_request.get('main.create_api_key', service_id=SERVICE_ONE_ID) diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 3e44a10b0..bfc1a1a0f 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -34,9 +34,6 @@ from tests.conftest import ( SERVICE_ONE_ID, create_active_caseworking_user, create_active_user_with_permissions, - mock_get_international_service, - mock_get_live_service, - mock_get_service, mock_get_service_email_template, mock_get_service_letter_template, mock_get_service_template, @@ -2110,9 +2107,9 @@ def test_upload_csvfile_with_valid_phone_shows_all_numbers( mock_get_service_statistics.assert_called_once_with(service_one['id'], today_only=True) -@pytest.mark.parametrize('service_mock, should_allow_international', [ - (mock_get_service, False), - (mock_get_international_service, True), +@pytest.mark.parametrize('international_sms_permission, should_allow_international', [ + (False, False), + (True, True), ]) def test_upload_csvfile_with_international_validates( mocker, @@ -2126,11 +2123,14 @@ def test_upload_csvfile_with_international_validates( mock_get_job_doesnt_exist, mock_get_jobs, fake_uuid, - service_mock, + international_sms_permission, should_allow_international, + service_one, ): + if international_sms_permission: + service_one['permissions'] += ('sms', 'international_sms') + mocker.patch('app.service_api_client.get_service', return_value={'data': service_one}) - service_mock(mocker, api_user_active) mocker.patch('app.main.views.send.s3download', return_value='') mock_recipients = mocker.patch( 'app.main.views.send.RecipientCSV', @@ -2737,9 +2737,9 @@ def test_check_messages_shows_trial_mode_error( ) -@pytest.mark.parametrize('service_mock, error_should_be_shown', [ - (mock_get_service, True), - (mock_get_live_service, False), +@pytest.mark.parametrize('restricted, error_should_be_shown', [ + (True, True), + (False, False), ]) @pytest.mark.parametrize('number_of_rows, expected_error_message', [ (1, 'You cannot send this letter'), @@ -2748,7 +2748,7 @@ def test_check_messages_shows_trial_mode_error( ]) def test_check_messages_shows_trial_mode_error_for_letters( client_request, - api_user_active, + service_one, mock_get_service_letter_template, mock_has_permissions, mock_get_users_by_service, @@ -2758,12 +2758,13 @@ def test_check_messages_shows_trial_mode_error_for_letters( mock_s3_set_metadata, fake_uuid, mocker, - service_mock, + restricted, error_should_be_shown, number_of_rows, expected_error_message, ): - service_mock(mocker, api_user_active) + service_one['restricted'] = restricted + mocker.patch('app.service_api_client.get_service', return_value={'data': service_one}) mocker.patch('app.main.views.send.s3download', return_value='\n'.join( ['address_line_1,address_line_2,postcode,'] + @@ -3092,10 +3093,7 @@ def test_letters_from_csv_files_dont_have_download_link( assert not page.select('a[download]') -@pytest.mark.parametrize('service_mock', ( - mock_get_service, - mock_get_live_service, -)) +@pytest.mark.parametrize('restricted', [True, False]) def test_one_off_letters_have_download_link( client_request, mocker, @@ -3105,10 +3103,11 @@ def test_one_off_letters_have_download_link( fake_uuid, mock_get_users_by_service, mock_get_service_statistics, - service_mock, + restricted, + service_one, ): - - service_mock(mocker, api_user_active) + service_one['restricted'] = restricted + mocker.patch('app.service_api_client.get_service', return_value={'data': service_one}) mocker.patch( 'app.main.views.send.get_page_count_for_letter',