From 6999d3bceb5d1e5b3663f9d6fc463118e738370b Mon Sep 17 00:00:00 2001 From: Pea Tyczynska Date: Tue, 20 Apr 2021 12:22:28 +0100 Subject: [PATCH] Refactor platform admin user fixtures To make the code more DRY --- tests/app/main/views/test_send.py | 4 +- tests/conftest.py | 63 +++++++------------------------ 2 files changed, 15 insertions(+), 52 deletions(-) diff --git a/tests/app/main/views/test_send.py b/tests/app/main/views/test_send.py index 302896ffd..0ffde0f84 100644 --- a/tests/app/main/views/test_send.py +++ b/tests/app/main/views/test_send.py @@ -39,7 +39,6 @@ from tests.conftest import ( create_active_user_with_permissions, create_multiple_email_reply_to_addresses, create_multiple_sms_senders, - create_platform_admin_user, create_template, mock_get_service_email_template, mock_get_service_letter_template, @@ -1614,13 +1613,14 @@ def test_no_link_to_use_existing_list_for_service_without_lists( client_request, mock_get_service_template, mock_has_jobs, + platform_admin_user, fake_uuid, ): mocker.patch( 'app.models.contact_list.ContactLists.client_method', return_value=[], ) - client_request.login(create_platform_admin_user()) + client_request.login(platform_admin_user) page = client_request.get( 'main.send_one_off', service_id=SERVICE_ONE_ID, diff --git a/tests/conftest.py b/tests/conftest.py index 729623a3e..c20d6d38b 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -1082,30 +1082,16 @@ def api_user_pending(fake_uuid): @pytest.fixture(scope='function') def platform_admin_user(fake_uuid): - user_data = {'id': fake_uuid, - 'name': 'Platform admin user', - 'password': 'somepassword', - 'email_address': 'platform@admin.gov.uk', - 'mobile_number': '07700 900762', - 'state': 'active', - 'failed_login_count': 0, - 'permissions': {SERVICE_ONE_ID: ['send_texts', - 'send_emails', - 'send_letters', - 'manage_users', - 'manage_templates', - 'manage_settings', - 'manage_api_keys', - 'view_activity']}, - 'platform_admin': True, - 'auth_type': 'sms_auth', - 'password_changed_at': str(datetime.utcnow()), - 'services': [], - 'organisations': [], - 'current_session_id': None, - 'logged_in_at': None, - } - return user_data + return create_platform_admin_user(permissions={SERVICE_ONE_ID: [ + 'send_texts', + 'send_emails', + 'send_letters', + 'manage_users', + 'manage_templates', + 'manage_settings', + 'manage_api_keys', + 'view_activity' + ]}) @pytest.fixture(scope='function') @@ -1114,23 +1100,7 @@ def platform_admin_user_no_service_permissions(): this fixture is for situations where we want to test that platform admin can access an endpoint even though they have no explicit permissions for that service. """ - user_data = {'id': uuid4(), - 'name': 'Platform admin user no service permissions', - 'password': 'somepassword', - 'email_address': 'platform2@admin.gov.uk', - 'mobile_number': '07700 900763', - 'state': 'active', - 'failed_login_count': 0, - 'permissions': {}, - 'platform_admin': True, - 'auth_type': 'sms_auth', - 'password_changed_at': str(datetime.utcnow()), - 'services': [], - 'organisations': [], - 'current_session_id': None, - 'logged_in_at': None, - } - return user_data + return create_platform_admin_user() @pytest.fixture(scope='function') @@ -3998,7 +3968,7 @@ def create_active_user_manage_template_permissions(with_unique_id=False): } -def create_platform_admin_user(with_unique_id=False): +def create_platform_admin_user(with_unique_id=False, permissions=None): return { 'id': str(uuid4()) if with_unique_id else sample_uuid(), 'name': 'Platform admin user', @@ -4007,14 +3977,7 @@ def create_platform_admin_user(with_unique_id=False): 'mobile_number': '07700 900762', 'state': 'active', 'failed_login_count': 0, - 'permissions': {SERVICE_ONE_ID: ['send_texts', - 'send_emails', - 'send_letters', - 'manage_users', - 'manage_templates', - 'manage_settings', - 'manage_api_keys', - 'view_activity']}, + 'permissions': permissions or {}, 'platform_admin': True, 'auth_type': 'sms_auth', 'password_changed_at': str(datetime.utcnow()),