Reduce the errors related to user fixtures

We were using user fixtures in a lot of parameterized tests, but this is
no longer allowed in Pytest 5. To avoid having to split up the parametrized
tests (which would make the test files a lot longer and slightly more
difficult to read) this commit creates functions which return various types
of user json so that we can use these as the test parameters instead.
This commit is contained in:
Katie Smith
2019-12-19 16:59:07 +00:00
parent b62018a8e4
commit e4134072d9
17 changed files with 412 additions and 231 deletions
@@ -10,9 +10,9 @@ from tests.conftest import (
ORGANISATION_ID,
SERVICE_ONE_ID,
SERVICE_TWO_ID,
active_user_with_permissions,
create_active_user_with_permissions,
create_platform_admin_user,
normalize_spaces,
platform_admin_user,
)
@@ -548,10 +548,10 @@ def test_organisation_settings_for_platform_admin(
))
@pytest.mark.parametrize('user', (
pytest.param(
platform_admin_user,
create_platform_admin_user(),
),
pytest.param(
active_user_with_permissions,
create_active_user_with_permissions(),
marks=pytest.mark.xfail
),
))
@@ -565,7 +565,7 @@ def test_view_organisation_settings(
expected_selected,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(endpoint, org_id=organisation_one['id'])
@@ -633,10 +633,10 @@ def test_view_organisation_settings(
))
@pytest.mark.parametrize('user', (
pytest.param(
platform_admin_user,
create_platform_admin_user(),
),
pytest.param(
active_user_with_permissions,
create_active_user_with_permissions(),
marks=pytest.mark.xfail
),
))
@@ -653,7 +653,7 @@ def test_update_organisation_settings(
user,
):
mocker.patch('app.organisations_client.get_organisation_services', return_value=[])
client_request.login(user(fake_uuid))
client_request.login(user)
client_request.post(
endpoint,
@@ -704,10 +704,10 @@ def test_update_organisation_sector_sends_service_id_data_to_api_client(
@pytest.mark.parametrize('user', (
pytest.param(
platform_admin_user,
create_platform_admin_user(),
),
pytest.param(
active_user_with_permissions,
create_active_user_with_permissions(),
marks=pytest.mark.xfail
),
))
@@ -717,7 +717,7 @@ def test_view_organisation_domains(
fake_uuid,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
mocker.patch(
'app.organisations_client.get_organisation',
@@ -785,10 +785,10 @@ def test_view_organisation_domains(
))
@pytest.mark.parametrize('user', (
pytest.param(
platform_admin_user,
create_platform_admin_user(),
),
pytest.param(
active_user_with_permissions,
create_active_user_with_permissions(),
marks=pytest.mark.xfail
),
))
@@ -802,7 +802,7 @@ def test_update_organisation_domains(
expected_persisted,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
client_request.post(
'main.edit_organisation_domains',
+4 -5
View File
@@ -9,8 +9,8 @@ import app
from tests.conftest import (
SERVICE_ONE_ID,
USER_ONE_ID,
active_caseworking_user,
active_user_with_permissions,
create_active_caseworking_user,
create_active_user_with_permissions,
normalize_spaces,
)
@@ -126,8 +126,8 @@ def test_invite_goes_in_session(
@pytest.mark.parametrize('user, landing_page_title', [
(active_user_with_permissions, 'Dashboard'),
(active_caseworking_user, 'Templates'),
(create_active_user_with_permissions(), 'Dashboard'),
(create_active_caseworking_user(), 'Templates'),
])
def test_accepting_invite_removes_invite_from_session(
client_request,
@@ -153,7 +153,6 @@ def test_accepting_invite_removes_invite_from_session(
user,
landing_page_title,
):
user = user(fake_uuid)
sample_invite['email_address'] = user['email_address']
mocker.patch('app.invite_api_client.check_token', return_value=sample_invite)
+13 -15
View File
@@ -11,9 +11,9 @@ from app.main.views.jobs import get_status_filters, get_time_left
from app.models.service import Service
from tests.conftest import (
SERVICE_ONE_ID,
active_caseworking_user,
active_user_view_permissions,
active_user_with_permissions,
create_active_caseworking_user,
create_active_user_view_permissions,
create_active_user_with_permissions,
mock_get_api_keys,
mock_get_no_api_keys,
mock_get_notifications,
@@ -24,21 +24,21 @@ from tests.conftest import (
@pytest.mark.parametrize(
"user,extra_args,expected_update_endpoint,expected_limit_days,page_title", [
(
active_user_view_permissions,
create_active_user_view_permissions(),
{'message_type': 'email'},
'/email.json',
7,
'Emails',
),
(
active_user_view_permissions,
create_active_user_view_permissions(),
{'message_type': 'sms'},
'/sms.json',
7,
'Text messages',
),
(
active_caseworking_user,
create_active_caseworking_user(),
{},
'.json',
None,
@@ -109,9 +109,8 @@ def test_can_show_notifications(
to_argument,
expected_to_argument,
mocker,
fake_uuid,
):
client_request.login(user(fake_uuid))
client_request.login(user)
if expected_to_argument:
page = client_request.post(
'main.view_notifications',
@@ -191,7 +190,7 @@ def test_can_show_notifications_if_data_retention_not_available(
@pytest.mark.parametrize('user, query_parameters, expected_download_link', [
(
active_user_with_permissions,
create_active_user_with_permissions(),
{},
partial(
url_for,
@@ -200,7 +199,7 @@ def test_can_show_notifications_if_data_retention_not_available(
),
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
{'status': 'failed'},
partial(
url_for,
@@ -209,7 +208,7 @@ def test_can_show_notifications_if_data_retention_not_available(
),
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
{'message_type': 'sms'},
partial(
url_for,
@@ -218,7 +217,7 @@ def test_can_show_notifications_if_data_retention_not_available(
),
),
(
active_user_view_permissions,
create_active_user_view_permissions(),
{},
partial(
url_for,
@@ -226,14 +225,13 @@ def test_can_show_notifications_if_data_retention_not_available(
),
),
(
active_caseworking_user,
create_active_caseworking_user(),
{},
lambda service_id: None,
),
])
def test_link_to_download_notifications(
client_request,
fake_uuid,
mock_get_notifications,
mock_get_service_statistics,
mock_get_service_data_retention,
@@ -243,7 +241,7 @@ def test_link_to_download_notifications(
query_parameters,
expected_download_link,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.view_notifications',
service_id=SERVICE_ONE_ID,
+5 -6
View File
@@ -25,8 +25,8 @@ from tests import (
from tests.conftest import (
ORGANISATION_ID,
SERVICE_ONE_ID,
active_caseworking_user,
active_user_view_permissions,
create_active_caseworking_user,
create_active_user_view_permissions,
mock_get_inbound_sms_summary,
mock_get_inbound_sms_summary_with_no_messages,
normalize_spaces,
@@ -101,16 +101,15 @@ stub_template_stats = [
@pytest.mark.parametrize('user', (
active_user_view_permissions,
active_caseworking_user,
create_active_user_view_permissions(),
create_active_caseworking_user(),
))
def test_redirect_from_old_dashboard(
logged_in_client,
user,
mocker,
fake_uuid,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
expected_location = 'http://localhost/services/{}'.format(SERVICE_ONE_ID)
response = logged_in_client.get('/services/{}/dashboard'.format(SERVICE_ONE_ID))
+5 -9
View File
@@ -7,11 +7,7 @@ from flask import url_for
from notifications_python_client.errors import HTTPError
from app.s3_client.s3_logo_client import EMAIL_LOGO_LOCATION_STRUCTURE, TEMP_TAG
from tests.conftest import (
mock_get_email_branding,
normalize_spaces,
platform_admin_user,
)
from tests.conftest import mock_get_email_branding, normalize_spaces
def test_email_branding_page_shows_full_branding_list(
@@ -124,8 +120,8 @@ def test_create_new_email_branding_without_logo(
def test_create_email_branding_requires_a_name_when_submitting_logo_details(
client_request,
mocker,
fake_uuid,
mock_create_email_branding,
platform_admin_user,
):
mocker.patch('app.main.views.email_branding.persist_logo')
mocker.patch('app.main.views.email_branding.delete_email_temp_files_created_by')
@@ -137,7 +133,7 @@ def test_create_email_branding_requires_a_name_when_submitting_logo_details(
'name': '',
'brand_type': 'org',
}
client_request.login(platform_admin_user(fake_uuid))
client_request.login(platform_admin_user)
page = client_request.post(
'.create_email_branding',
content_type='multipart/form-data',
@@ -152,7 +148,7 @@ def test_create_email_branding_requires_a_name_when_submitting_logo_details(
def test_create_email_branding_does_not_require_a_name_when_uploading_a_file(
client_request,
mocker,
fake_uuid,
platform_admin_user,
):
mocker.patch('app.main.views.email_branding.upload_email_logo', return_value='temp_filename')
data = {
@@ -162,7 +158,7 @@ def test_create_email_branding_does_not_require_a_name_when_uploading_a_file(
'name': '',
'brand_type': 'org',
}
client_request.login(platform_admin_user(fake_uuid))
client_request.login(platform_admin_user)
page = client_request.post(
'.create_email_branding',
content_type='multipart/form-data',
+13 -17
View File
@@ -9,8 +9,8 @@ from app.main.views.jobs import get_time_left
from tests import job_json, notification_json, sample_uuid
from tests.conftest import (
SERVICE_ONE_ID,
active_caseworking_user,
active_user_with_permissions,
create_active_caseworking_user,
create_active_user_with_permissions,
mock_get_notifications,
mock_get_service_letter_template,
normalize_spaces,
@@ -18,7 +18,7 @@ from tests.conftest import (
@pytest.mark.parametrize('user, expected_rows', [
(active_user_with_permissions, (
(create_active_user_with_permissions(), (
(
'File Sending Delivered Failed'
),
@@ -39,7 +39,7 @@ from tests.conftest import (
'Sent today at 12:12pm 1 0 0'
),
)),
(active_caseworking_user, (
(create_active_caseworking_user(), (
(
'File Messages to be sent'
),
@@ -78,11 +78,10 @@ def test_jobs_page_shows_scheduled_jobs_if_user_doesnt_have_dashboard(
service_one,
active_user_with_permissions,
mock_get_jobs,
fake_uuid,
user,
expected_rows,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get('main.view_jobs', service_id=service_one['id'])
for index, row in enumerate(expected_rows):
@@ -90,17 +89,16 @@ def test_jobs_page_shows_scheduled_jobs_if_user_doesnt_have_dashboard(
@pytest.mark.parametrize('user', [
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
])
def test_get_jobs_shows_page_links(
client_request,
active_user_with_permissions,
mock_get_jobs,
user,
fake_uuid,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get('main.view_jobs', service_id=SERVICE_ONE_ID)
assert 'Next page' in page.find('li', {'class': 'next-page'}).text
@@ -108,8 +106,8 @@ def test_get_jobs_shows_page_links(
@pytest.mark.parametrize('user', [
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
])
@freeze_time("2012-12-12 12:12")
def test_jobs_page_doesnt_show_scheduled_on_page_2(
@@ -117,10 +115,9 @@ def test_jobs_page_doesnt_show_scheduled_on_page_2(
service_one,
active_user_with_permissions,
mock_get_jobs,
fake_uuid,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get('main.view_jobs', service_id=service_one['id'], page=2)
for index, row in enumerate((
@@ -148,8 +145,8 @@ def test_jobs_page_doesnt_show_scheduled_on_page_2(
@pytest.mark.parametrize('user', [
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
])
@pytest.mark.parametrize(
"status_argument, expected_api_call", [
@@ -182,7 +179,6 @@ def test_jobs_page_doesnt_show_scheduled_on_page_2(
@freeze_time("2016-01-01 11:09:00.061258")
def test_should_show_page_for_one_job(
client_request,
active_user_with_permissions,
mock_get_service_template,
mock_get_job,
mocker,
+29 -28
View File
@@ -9,21 +9,18 @@ from app.utils import is_gov_user
from tests.conftest import (
SERVICE_ONE_ID,
USER_ONE_ID,
active_caseworking_user,
active_user_empty_permissions,
active_user_manage_template_permission,
active_user_no_mobile,
active_user_view_permissions,
active_user_with_permissions,
create_active_user_empty_permissions,
create_active_user_manage_template_permissions,
create_active_user_view_permissions,
create_active_user_with_permissions,
normalize_spaces,
platform_admin_user,
sample_uuid,
)
@pytest.mark.parametrize('user, expected_self_text, expected_coworker_text', [
(
active_user_with_permissions,
create_active_user_with_permissions(),
(
'Test User (you) '
'Can See dashboard '
@@ -43,7 +40,7 @@ from tests.conftest import (
)
),
(
active_user_empty_permissions,
create_active_user_empty_permissions(),
(
'Test User With Empty Permissions (you) '
'Cannot See dashboard '
@@ -62,7 +59,7 @@ from tests.conftest import (
),
),
(
active_user_view_permissions,
create_active_user_view_permissions(),
(
'Test User With Permissions (you) '
'Can See dashboard '
@@ -81,7 +78,7 @@ from tests.conftest import (
)
),
(
active_user_manage_template_permission,
create_active_user_manage_template_permissions(),
(
'Test User With Permissions (you) '
'Can See dashboard '
@@ -100,7 +97,7 @@ from tests.conftest import (
)
),
(
active_user_manage_template_permission,
create_active_user_manage_template_permissions(),
(
'Test User With Permissions (you) '
'Can See dashboard '
@@ -125,14 +122,13 @@ def test_should_show_overview_page(
mock_get_invites_for_service,
mock_get_template_folders,
mock_has_no_jobs,
fake_uuid,
service_one,
user,
expected_self_text,
expected_coworker_text,
active_user_view_permissions,
):
current_user = user(fake_uuid)
current_user = user
other_user = copy.deepcopy(active_user_view_permissions)
other_user['email_address'] = 'zzzzzzz@example.gov.uk'
other_user['name'] = 'ZZZZZZZZ'
@@ -158,12 +154,15 @@ def test_should_show_caseworker_on_overview_page(
mocker,
mock_get_invites_for_service,
mock_get_template_folders,
fake_uuid,
service_one,
active_user_view_permissions,
active_caseworking_user,
):
service_one['permissions'].append('caseworking')
current_user = active_user_view_permissions(fake_uuid)
other_user = active_caseworking_user(uuid.uuid4())
current_user = active_user_view_permissions
other_user = active_caseworking_user
other_user['id'] = uuid.uuid4()
other_user['email_address'] = 'zzzzzzz@example.gov.uk'
mocker.patch('app.user_api_client.get_user', return_value=current_user)
@@ -286,10 +285,10 @@ def test_manage_users_page_shows_member_auth_type_if_service_has_email_auth_acti
assert bool(page.select_one('.tick-cross-list-hint')) == displays_auth_type
@pytest.mark.parametrize('user, sms_option_disabled, expected_label', [
@pytest.mark.parametrize('sms_option_disabled, mobile_number, expected_label', [
(
active_user_no_mobile,
True,
None,
"""
Text message code
Not available because this team member has not added a
@@ -297,8 +296,8 @@ def test_manage_users_page_shows_member_auth_type_if_service_has_email_auth_acti
""",
),
(
active_user_with_permissions,
False,
'07700 900762',
"""
Text message code
""",
@@ -308,15 +307,17 @@ def test_user_with_no_mobile_number_cant_be_set_to_sms_auth(
client_request,
mock_get_users_by_service,
mock_get_template_folders,
user,
sms_option_disabled,
mobile_number,
expected_label,
service_one,
mocker,
fake_uuid,
active_user_with_permissions,
):
active_user_with_permissions['mobile_number'] = mobile_number
service_one['permissions'].append('email_auth')
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=active_user_with_permissions)
page = client_request.get(
'main.edit_user_permissions',
@@ -533,11 +534,11 @@ def test_cant_edit_user_folder_permissions_for_platform_admin_users(
mock_get_invites_for_service,
mock_set_user_permissions,
mock_get_template_folders,
fake_uuid,
platform_admin_user,
):
service_one['permissions'] = ['edit_folder_permissions']
mocker.patch(
'app.user_api_client.get_user', return_value=platform_admin_user(fake_uuid)
'app.user_api_client.get_user', return_value=platform_admin_user
)
mock_get_template_folders.return_value = [
{'id': 'folder-id-1', 'name': 'folder_one', 'parent_id': None, 'users_with_permission': []},
@@ -547,7 +548,7 @@ def test_cant_edit_user_folder_permissions_for_platform_admin_users(
page = client_request.get(
'main.edit_user_permissions',
service_id=SERVICE_ONE_ID,
user_id=fake_uuid,
user_id=platform_admin_user['id'],
)
assert normalize_spaces(page.select('main p')[0].text) == 'platform@admin.gov.uk Change'
assert normalize_spaces(page.select('main p')[2].text) == (
@@ -557,7 +558,7 @@ def test_cant_edit_user_folder_permissions_for_platform_admin_users(
client_request.post(
'main.edit_user_permissions',
service_id=SERVICE_ONE_ID,
user_id=fake_uuid,
user_id=platform_admin_user['id'],
_data={},
_expected_status=302,
_expected_redirect=url_for(
@@ -567,7 +568,7 @@ def test_cant_edit_user_folder_permissions_for_platform_admin_users(
),
)
mock_set_user_permissions.assert_called_with(
fake_uuid,
platform_admin_user['id'],
SERVICE_ONE_ID,
permissions={
'manage_api_keys', 'manage_service', 'manage_templates', 'send_messages', 'view_activity',
+5 -5
View File
@@ -11,8 +11,8 @@ from PyPDF2.utils import PdfReadError
from tests.conftest import (
SERVICE_ONE_ID,
active_caseworking_user,
active_user_with_permissions,
create_active_caseworking_user,
create_active_user_with_permissions,
mock_get_notification,
normalize_spaces,
)
@@ -33,8 +33,8 @@ from tests.conftest import (
('test', 'permanent-failure', 'Phone number does not exist (test)'),
])
@pytest.mark.parametrize('user', [
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
])
@freeze_time("2016-01-01 11:09:00.061258")
def test_notification_status_page_shows_details(
@@ -49,7 +49,7 @@ def test_notification_status_page_shows_details(
expected_status,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
_mock_get_notification = mock_get_notification(
mocker,
+47 -48
View File
@@ -32,8 +32,8 @@ from tests import (
)
from tests.conftest import (
SERVICE_ONE_ID,
active_caseworking_user,
active_user_with_permissions,
create_active_caseworking_user,
create_active_user_with_permissions,
mock_get_international_service,
mock_get_live_service,
mock_get_service,
@@ -954,8 +954,8 @@ def test_404_for_previewing_a_row_out_of_range(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
def test_send_test_doesnt_show_file_contents(
client_request,
@@ -969,7 +969,7 @@ def test_send_test_doesnt_show_file_contents(
fake_uuid,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
mocker.patch('app.main.views.send.s3download', return_value="""
phone number
07700 900 986
@@ -990,43 +990,43 @@ def test_send_test_doesnt_show_file_contents(
@pytest.mark.parametrize('user, endpoint, template_mock, expected_recipient', [
(
active_user_with_permissions,
create_active_user_with_permissions(),
'main.send_test_step',
mock_get_service_template_with_placeholders,
'07700 900762'
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
'main.send_test_step',
mock_get_service_email_template,
'test@user.gov.uk'
),
(
active_caseworking_user,
create_active_caseworking_user(),
'main.send_test_step',
mock_get_service_email_template,
'caseworker@example.gov.uk'
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
'main.send_test_step',
mock_get_service_letter_template,
None
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
'main.send_one_off_step',
mock_get_service_template,
None
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
'main.send_one_off_step',
mock_get_service_email_template,
None
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
'main.send_one_off_step',
mock_get_service_letter_template,
None
@@ -1044,7 +1044,7 @@ def test_send_test_step_redirects_if_session_not_setup(
expected_recipient,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
template_mock(mocker)
mocker.patch('app.main.views.send.get_page_count_for_letter', return_value=9)
@@ -1090,8 +1090,8 @@ def test_send_one_off_does_not_send_without_the_correct_permissions(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
@pytest.mark.parametrize('template_mock, partial_url, expected_h1, tour_shown', [
(
@@ -1155,7 +1155,7 @@ def test_send_one_off_or_test_has_correct_page_titles(
tour_shown,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
template_mock(mocker)
mocker.patch('app.main.views.send.get_page_count_for_letter', return_value=9)
@@ -1230,24 +1230,24 @@ def test_send_one_off_or_test_shows_placeholders_in_correct_order(
@pytest.mark.parametrize('user, template_mock, expected_link_text, expected_link_url', [
(
active_user_with_permissions,
create_active_user_with_permissions(),
mock_get_service_template,
'Use my phone number',
partial(url_for, 'main.send_test')
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
mock_get_service_email_template,
'Use my email address',
partial(url_for, 'main.send_test')
),
(
active_user_with_permissions,
create_active_user_with_permissions(),
mock_get_service_letter_template,
None, None
),
(
active_caseworking_user,
create_active_caseworking_user(),
mock_get_service_template,
None, None
),
@@ -1264,7 +1264,7 @@ def test_send_one_off_has_skip_link(
expected_link_url,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
template_mock(mocker)
mocker.patch('app.main.views.send.get_page_count_for_letter', return_value=9)
@@ -1316,8 +1316,8 @@ def test_send_one_off_has_sticky_header_for_email_and_letter(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
def test_skip_link_will_not_show_on_sms_one_off_if_service_has_no_mobile_number(
client_request,
@@ -1328,7 +1328,6 @@ def test_skip_link_will_not_show_on_sms_one_off_if_service_has_no_mobile_number(
mocker,
user,
):
user = user(fake_uuid)
user['mobile_number'] = None
client_request.login(user)
page = client_request.get(
@@ -1343,8 +1342,8 @@ def test_skip_link_will_not_show_on_sms_one_off_if_service_has_no_mobile_number(
@pytest.mark.parametrize('user, link_index', (
(active_user_with_permissions, 2),
(active_caseworking_user, 1),
(create_active_user_with_permissions(), 2),
(create_active_caseworking_user(), 1),
))
def test_send_one_off_offers_link_to_upload(
client_request,
@@ -1354,7 +1353,7 @@ def test_send_one_off_offers_link_to_upload(
user,
link_index,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.send_one_off',
@@ -1377,8 +1376,8 @@ def test_send_one_off_offers_link_to_upload(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
def test_link_to_upload_not_offered_in_tour(
client_request,
@@ -1386,7 +1385,7 @@ def test_link_to_upload_not_offered_in_tour(
mock_get_service_template,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.send_test',
@@ -1403,8 +1402,8 @@ def test_link_to_upload_not_offered_in_tour(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
@pytest.mark.parametrize('endpoint, step_index', (
('main.send_one_off_step', 1),
@@ -1419,7 +1418,7 @@ def test_link_to_upload_not_offered_when_entering_personalisation(
endpoint,
step_index,
):
client_request.login(user(fake_uuid))
client_request.login(user)
with client_request.session_transaction() as session:
session['recipient'] = '07900900900'
@@ -1441,8 +1440,8 @@ def test_link_to_upload_not_offered_when_entering_personalisation(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
@pytest.mark.parametrize('endpoint, expected_redirect, placeholders', [
(
@@ -1466,7 +1465,7 @@ def test_send_test_redirects_to_end_if_step_out_of_bounds(
mocker,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
with client_request.session_transaction() as session:
session['placeholders'] = placeholders
@@ -1487,8 +1486,8 @@ def test_send_test_redirects_to_end_if_step_out_of_bounds(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
@pytest.mark.parametrize('endpoint, expected_redirect', [
('main.send_test_step', 'main.send_test'),
@@ -1508,7 +1507,7 @@ def test_send_test_redirects_to_start_if_you_skip_steps(
expected_redirect,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
with platform_admin_client.session_transaction() as session:
session['send_test_letter_page_count'] = 1
@@ -1530,8 +1529,8 @@ def test_send_test_redirects_to_start_if_you_skip_steps(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
@pytest.mark.parametrize('endpoint, expected_redirect', [
('main.send_test_step', 'main.send_test'),
@@ -1551,7 +1550,7 @@ def test_send_test_redirects_to_start_if_index_out_of_bounds_and_some_placeholde
mocker,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
with client_request.session_transaction() as session:
session['placeholders'] = {'name': 'foo'}
@@ -1571,8 +1570,8 @@ def test_send_test_redirects_to_start_if_index_out_of_bounds_and_some_placeholde
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
@pytest.mark.parametrize('endpoint, expected_redirect', [
('main.send_test', 'main.send_test_step'),
@@ -1587,7 +1586,7 @@ def test_send_test_sms_message_redirects_with_help_argument(
expected_redirect,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
template = {'data': {'template_type': 'sms', 'folder': None}}
mocker.patch('app.service_api_client.get_service_template', return_value=template)
@@ -1609,8 +1608,8 @@ def test_send_test_sms_message_redirects_with_help_argument(
@pytest.mark.parametrize('user', (
active_user_with_permissions,
active_caseworking_user,
create_active_user_with_permissions(),
create_active_caseworking_user(),
))
def test_send_test_email_message_without_placeholders_redirects_to_check_page(
client_request,
@@ -1624,7 +1623,7 @@ def test_send_test_email_message_without_placeholders_redirects_to_check_page(
fake_uuid,
user,
):
mocker.patch('app.user_api_client.get_user', return_value=user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=user)
with client_request.session_transaction() as session:
session['recipient'] = 'foo@bar.com'
+23 -27
View File
@@ -21,9 +21,10 @@ from tests.conftest import (
ORGANISATION_ID,
SERVICE_ONE_ID,
TEMPLATE_ONE_ID,
active_user_no_api_key_permission,
active_user_no_settings_permission,
active_user_with_permissions,
create_active_user_no_api_key_permission,
create_active_user_no_settings_permission,
create_active_user_with_permissions,
create_platform_admin_user,
get_default_letter_contact_block,
get_default_reply_to_email_address,
get_default_sms_sender,
@@ -39,7 +40,6 @@ from tests.conftest import (
no_reply_to_email_addresses,
no_sms_senders,
normalize_spaces,
platform_admin_user,
sample_invite,
)
@@ -57,7 +57,7 @@ def mock_get_service_settings_page_common(
@pytest.mark.parametrize('user, expected_rows', [
(active_user_with_permissions, [
(create_active_user_with_permissions(), [
'Label Value Action',
'Service name Test Service Change',
@@ -79,7 +79,7 @@ def mock_get_service_settings_page_common(
'Send letters Off Change',
]),
(platform_admin_user, [
(create_platform_admin_user(), [
'Label Value Action',
'Service name Test Service Change',
@@ -117,7 +117,6 @@ def test_should_show_overview(
client,
mocker,
api_user_active,
fake_uuid,
no_reply_to_email_addresses,
no_letter_contact_blocks,
mock_get_service_organisation,
@@ -132,7 +131,7 @@ def test_should_show_overview(
organisation_id=ORGANISATION_ID)
mocker.patch('app.service_api_client.get_service', return_value={'data': service_one})
client.login(user(fake_uuid), mocker, service_one)
client.login(user, mocker, service_one)
response = client.get(url_for(
'main.service_settings', service_id=SERVICE_ONE_ID
))
@@ -415,19 +414,18 @@ def test_service_name_change_fails_if_new_name_has_less_than_2_alphanumeric_char
@pytest.mark.parametrize('user, expected_text, expected_link', [
(
active_user_with_permissions,
create_active_user_with_permissions(),
'To remove these restrictions, you can send us a request to go live.',
True,
),
(
active_user_no_settings_permission,
create_active_user_no_settings_permission(),
'Your service manager can ask to have these restrictions removed.',
False,
),
])
def test_show_restricted_service(
client_request,
fake_uuid,
single_reply_to_email_address,
single_letter_contact_block,
mock_get_service_organisation,
@@ -437,7 +435,7 @@ def test_show_restricted_service(
expected_text,
expected_link,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.service_settings',
service_id=SERVICE_ONE_ID,
@@ -763,6 +761,7 @@ def test_should_check_for_sending_things_right(
reply_to_email_addresses,
expected_reply_to_checklist_item,
active_user_with_permissions,
active_user_no_settings_permission
):
def _templates_by_type(template_type):
return {
@@ -774,7 +773,7 @@ def test_should_check_for_sending_things_right(
'app.models.user.Users.client',
return_value=(
[active_user_with_permissions] * count_of_users_with_manage_service +
[active_user_no_settings_permission(fake_uuid)]
[active_user_no_settings_permission]
)
)
mock_get_invites = mocker.patch(
@@ -3789,9 +3788,9 @@ def test_service_switch_can_upload_document_lets_contact_details_be_added_and_sh
@pytest.mark.parametrize('user', (
platform_admin_user,
active_user_with_permissions,
pytest.param(active_user_no_settings_permission, marks=pytest.mark.xfail),
create_platform_admin_user(),
create_active_user_with_permissions(),
pytest.param(create_active_user_no_settings_permission(), marks=pytest.mark.xfail),
))
def test_archive_service_after_confirm(
client_request,
@@ -3800,10 +3799,9 @@ def test_archive_service_after_confirm(
mock_get_service_and_organisation_counts,
mock_get_organisations_and_services_for_user,
user,
fake_uuid,
):
mocked_fn = mocker.patch('app.service_api_client.post')
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.post(
'main.archive_service',
service_id=SERVICE_ONE_ID,
@@ -3818,9 +3816,9 @@ def test_archive_service_after_confirm(
@pytest.mark.parametrize('user', (
platform_admin_user,
active_user_with_permissions,
pytest.param(active_user_no_settings_permission, marks=pytest.mark.xfail),
create_platform_admin_user(),
create_active_user_with_permissions(),
pytest.param(create_active_user_no_settings_permission(), marks=pytest.mark.xfail),
))
def test_archive_service_prompts_user(
client_request,
@@ -3830,11 +3828,10 @@ def test_archive_service_prompts_user(
mock_get_service_organisation,
single_sms_sender,
mock_get_service_settings_page_common,
fake_uuid,
user,
):
mocked_fn = mocker.patch('app.service_api_client.post')
client_request.login(user(fake_uuid))
client_request.login(user)
settings_page = client_request.get(
'main.archive_service',
@@ -4234,14 +4231,14 @@ def test_set_inbound_sms_when_inbound_number_is_not_set(
@pytest.mark.parametrize('user, expected_paragraphs', [
(active_user_with_permissions, [
(create_active_user_with_permissions(), [
'Your service can receive text messages sent to 07700900123.',
'You can still send text messages from a sender name if you '
'need to, but users will not be able to reply to those messages.',
'Contact us if you want to switch this feature off.',
'You can set up callbacks for received text messages on the API integration page.',
]),
(active_user_no_api_key_permission, [
(create_active_user_no_api_key_permission(), [
'Your service can receive text messages sent to 07700900123.',
'You can still send text messages from a sender name if you '
'need to, but users will not be able to reply to those messages.',
@@ -4252,7 +4249,6 @@ def test_set_inbound_sms_when_inbound_number_is_set(
client_request,
service_one,
mocker,
fake_uuid,
user,
expected_paragraphs,
):
@@ -4260,7 +4256,7 @@ def test_set_inbound_sms_when_inbound_number_is_set(
mocker.patch('app.inbound_number_client.get_inbound_sms_number_for_service', return_value={
'data': {'number': '07700900123'}
})
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.service_set_inbound_sms',
service_id=SERVICE_ONE_ID,
+21 -22
View File
@@ -10,9 +10,9 @@ from tests.conftest import (
SERVICE_ONE_ID,
TEMPLATE_ONE_ID,
_template,
active_caseworking_user,
active_user_view_permissions,
active_user_with_permissions,
create_active_caseworking_user,
create_active_user_view_permissions,
create_active_user_with_permissions,
normalize_spaces,
)
@@ -507,8 +507,9 @@ def test_get_manage_folder_viewing_permissions_for_users(
mocker
):
folder_id = str(uuid.uuid4())
team_member = active_user_view_permissions(str(uuid.uuid4()))
team_member_2 = active_user_view_permissions(str(uuid.uuid4()))
team_member = create_active_user_view_permissions(with_unique_id=True)
team_member_2 = create_active_user_view_permissions(with_unique_id=True)
mock_get_template_folders.return_value = [
_folder('folder_two', folder_id, None, [active_user_with_permissions['id'], team_member_2['id']]),
]
@@ -556,8 +557,8 @@ def test_get_manage_folder_viewing_permissions_for_users_not_visible_when_no_man
'view_activity',
]
folder_id = str(uuid.uuid4())
team_member = active_user_view_permissions(str(uuid.uuid4()))
team_member_2 = active_user_view_permissions(str(uuid.uuid4()))
team_member = create_active_user_view_permissions(with_unique_id=True)
team_member_2 = create_active_user_view_permissions(with_unique_id=True)
service_one["permissions"] += ["edit_folder_permissions"]
mock_get_template_folders.return_value = [
{'id': folder_id, 'name': 'folder_two', 'parent_id': None, 'users_with_permission': [
@@ -737,7 +738,7 @@ def test_rename_folder(client_request, active_user_with_permissions, service_one
def test_manage_folder_users(
client_request, active_user_with_permissions, service_one, mock_get_template_folders, mocker
):
team_member = active_user_view_permissions(str(uuid.uuid4()))
team_member = create_active_user_view_permissions(with_unique_id=True)
mock_update = mocker.patch('app.template_folder_api_client.update_template_folder')
folder_id = str(uuid.uuid4())
mock_get_template_folders.return_value = [
@@ -778,7 +779,7 @@ def test_manage_folder_users_doesnt_change_permissions_current_user_cannot_manag
'manage_api_keys',
'view_activity',
]
team_member = active_user_view_permissions(str(uuid.uuid4()))
team_member = create_active_user_view_permissions(with_unique_id=True)
mock_update = mocker.patch('app.template_folder_api_client.update_template_folder')
folder_id = str(uuid.uuid4())
mock_get_template_folders.return_value = [
@@ -907,14 +908,14 @@ def test_delete_folder(client_request, service_one, mock_get_template_folders, m
@pytest.mark.parametrize('user', [
pytest.param(
active_user_with_permissions
create_active_user_with_permissions()
),
pytest.param(
active_user_view_permissions,
create_active_user_view_permissions(),
marks=pytest.mark.xfail(raises=AssertionError)
),
pytest.param(
active_caseworking_user,
create_active_caseworking_user(),
marks=pytest.mark.xfail(raises=AssertionError)
),
])
@@ -925,10 +926,9 @@ def test_should_show_checkboxes_for_selecting_templates(
mock_get_service_templates,
mock_get_template_folders,
mock_has_no_jobs,
fake_uuid,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.choose_template',
@@ -947,10 +947,10 @@ def test_should_show_checkboxes_for_selecting_templates(
@pytest.mark.parametrize('user', [
active_user_view_permissions,
active_caseworking_user,
create_active_user_view_permissions(),
create_active_caseworking_user(),
pytest.param(
active_user_with_permissions,
create_active_user_with_permissions(),
marks=pytest.mark.xfail(raises=AssertionError),
),
])
@@ -961,10 +961,9 @@ def test_should_not_show_radios_and_buttons_for_move_destination_if_incorrect_pe
mock_get_service_templates,
mock_get_template_folders,
mock_has_no_jobs,
fake_uuid,
user,
):
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.choose_template',
@@ -1086,8 +1085,8 @@ def test_should_be_able_to_move_to_existing_folder(
@pytest.mark.parametrize('user, expected_status, expected_called', [
(active_user_view_permissions, 403, False),
(active_user_with_permissions, 302, True),
(create_active_user_view_permissions(), 403, False),
(create_active_user_with_permissions(), 302, True),
])
def test_should_not_be_able_to_move_to_existing_folder_if_dont_have_permission(
client_request,
@@ -1100,7 +1099,7 @@ def test_should_not_be_able_to_move_to_existing_folder_if_dont_have_permission(
expected_status,
expected_called,
):
client_request.login(user(fake_uuid))
client_request.login(user)
FOLDER_TWO_ID = str(uuid.uuid4())
mock_get_template_folders.return_value = [
_folder('folder_one', PARENT_FOLDER_ID, None),
+14 -14
View File
@@ -9,6 +9,7 @@ from notifications_python_client.errors import HTTPError
from app.main.views.templates import get_human_readable_delta
from tests import (
sample_uuid,
single_notification_json,
template_json,
validate_route_permission,
@@ -25,9 +26,8 @@ from tests.conftest import (
SERVICE_TWO_ID,
TEMPLATE_ONE_ID,
ElementNotFound,
active_caseworking_user,
active_user_view_permissions,
fake_uuid,
create_active_caseworking_user,
create_active_user_view_permissions,
mock_get_service_email_template,
mock_get_service_letter_template,
mock_get_service_template,
@@ -90,7 +90,7 @@ def test_should_show_add_template_form_if_service_has_folder_permission(
'user, expected_page_title, extra_args, expected_nav_links, expected_templates',
[
(
active_user_view_permissions,
create_active_user_view_permissions(),
'Templates',
{},
['Email', 'Text message', 'Letter'],
@@ -104,28 +104,28 @@ def test_should_show_add_template_form_if_service_has_folder_permission(
]
),
(
active_user_view_permissions,
create_active_user_view_permissions(),
'Templates',
{'template_type': 'sms'},
['All', 'Email', 'Letter'],
['sms_template_one', 'sms_template_two'],
),
(
active_user_view_permissions,
create_active_user_view_permissions(),
'Templates',
{'template_type': 'email'},
['All', 'Text message', 'Letter'],
['email_template_one', 'email_template_two'],
),
(
active_user_view_permissions,
create_active_user_view_permissions(),
'Templates',
{'template_type': 'letter'},
['All', 'Email', 'Text message'],
['letter_template_one', 'letter_template_two'],
),
(
active_caseworking_user,
create_active_caseworking_user(),
'Templates',
{},
['Email', 'Text message', 'Letter'],
@@ -139,7 +139,7 @@ def test_should_show_add_template_form_if_service_has_folder_permission(
],
),
(
active_caseworking_user,
create_active_caseworking_user(),
'Templates',
{'template_type': 'email'},
['All', 'Text message', 'Letter'],
@@ -157,12 +157,11 @@ def test_should_show_page_for_choosing_a_template(
expected_templates,
service_one,
mocker,
fake_uuid,
user,
expected_page_title,
):
service_one['permissions'].append('letter')
client_request.login(user(fake_uuid))
client_request.login(user)
page = client_request.get(
'main.choose_template',
@@ -358,9 +357,10 @@ def test_caseworker_redirected_to_one_off(
mock_get_service_template,
mocker,
fake_uuid,
active_caseworking_user,
):
mocker.patch('app.user_api_client.get_user', return_value=active_caseworking_user(fake_uuid))
mocker.patch('app.user_api_client.get_user', return_value=active_caseworking_user)
client_request.get(
'main.view_template',
@@ -717,10 +717,10 @@ def test_should_show_sms_template_with_downgraded_unicode_characters(
@pytest.mark.parametrize('mock_contact_block, expected_partial_url', (
(no_letter_contact_blocks, partial(
url_for, 'main.service_add_letter_contact', from_template=fake_uuid(),
url_for, 'main.service_add_letter_contact', from_template=sample_uuid(),
)),
(single_letter_contact_block, partial(
url_for, 'main.set_template_sender', template_id=fake_uuid(),
url_for, 'main.set_template_sender', template_id=sample_uuid(),
)),
))
def test_should_let_letter_contact_block_be_changed_for_the_template(
+3 -5
View File
@@ -5,8 +5,7 @@ import pytest
from flask import url_for
from notifications_utils.url_safe_token import generate_token
from tests.conftest import api_user_active as create_user
from tests.conftest import url_for_endpoint_with_token
from tests.conftest import create_api_user_active, url_for_endpoint_with_token
def test_should_show_overview_page(
@@ -200,11 +199,10 @@ def test_should_redirect_after_mobile_number_confirm(
mocker,
mock_update_user_attribute,
mock_check_verify_code,
fake_uuid,
phone_number_to_register_with,
):
user_before = create_user(fake_uuid)
user_after = create_user(fake_uuid)
user_before = create_api_user_active(with_unique_id=True)
user_after = create_api_user_active(with_unique_id=True)
user_before['current_session_id'] = str(uuid.UUID(int=1))
user_after['current_session_id'] = str(uuid.UUID(int=2))
@@ -1,4 +1,3 @@
import uuid
from datetime import date
from unittest.mock import patch
@@ -9,7 +8,11 @@ from app.models.service import Service
from app.notify_client import NotifyAdminAPIClient
from app.notify_client.notification_api_client import notification_api_client
from tests import service_json
from tests.conftest import api_user_active, platform_admin_user, set_config
from tests.conftest import (
create_api_user_active,
create_platform_admin_user,
set_config,
)
@pytest.mark.parametrize('method', [
@@ -18,8 +21,8 @@ from tests.conftest import api_user_active, platform_admin_user, set_config
'delete'
])
@pytest.mark.parametrize('user', [
api_user_active(str(uuid.uuid4())),
platform_admin_user(str(uuid.uuid4()))
create_api_user_active(),
create_platform_admin_user(),
], ids=['api_user', 'platform_admin'])
@pytest.mark.parametrize('service', [
service_json(active=True),
+2 -2
View File
@@ -5,7 +5,7 @@ import pytest
from app import invite_api_client, service_api_client, user_api_client
from tests import sample_uuid
from tests.conftest import SERVICE_ONE_ID, api_user_pending
from tests.conftest import SERVICE_ONE_ID
user_id = sample_uuid()
@@ -193,7 +193,7 @@ def test_returns_value_from_cache(
(user_api_client, 'add_user_to_service', [SERVICE_ONE_ID, user_id, [], []], {}),
(user_api_client, 'add_user_to_organisation', [sample_uuid(), user_id], {}),
(user_api_client, 'set_user_permissions', [user_id, SERVICE_ONE_ID, []], {}),
(user_api_client, 'activate_user', [api_user_pending(sample_uuid())['id']], {}),
(user_api_client, 'activate_user', [user_id], {}),
(user_api_client, 'archive_user', [user_id], {}),
(service_api_client, 'remove_user_from_service', [SERVICE_ONE_ID, user_id], {}),
(service_api_client, 'create_service', ['', '', 0, False, user_id, sample_uuid()], {}),
+5 -10
View File
@@ -8,12 +8,7 @@ from app.navigation import (
MainNavigation,
OrgNavigation,
)
from tests.conftest import (
ORGANISATION_ID,
SERVICE_ONE_ID,
active_caseworking_user,
normalize_spaces,
)
from tests.conftest import ORGANISATION_ID, SERVICE_ONE_ID, normalize_spaces
def flask_app():
@@ -181,14 +176,14 @@ def test_navigation_urls(
def test_caseworkers_get_caseworking_navigation(
client_request,
mocker,
fake_uuid,
mock_get_template_folders,
mock_get_service_templates,
mock_has_no_jobs,
active_caseworking_user,
):
mocker.patch(
'app.user_api_client.get_user',
return_value=active_caseworking_user(fake_uuid)
return_value=active_caseworking_user
)
page = client_request.get('main.choose_template', service_id=SERVICE_ONE_ID)
assert normalize_spaces(page.select_one('header + .govuk-width-container nav').text) == (
@@ -199,14 +194,14 @@ def test_caseworkers_get_caseworking_navigation(
def test_caseworkers_see_jobs_nav_if_jobs_exist(
client_request,
mocker,
fake_uuid,
mock_get_service_templates,
mock_get_template_folders,
mock_has_jobs,
active_caseworking_user,
):
mocker.patch(
'app.user_api_client.get_user',
return_value=active_caseworking_user(fake_uuid)
return_value=active_caseworking_user
)
page = client_request.get('main.choose_template', service_id=SERVICE_ONE_ID)
assert normalize_spaces(page.select_one('header + .govuk-width-container nav').text) == (
+202
View File
@@ -3562,3 +3562,205 @@ def mock_get_service_history(mocker):
],
'events': [],
})
def create_api_user_active(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User',
'password': 'somepassword',
'email_address': 'test@user.gov.uk',
'mobile_number': '07700 900762',
'state': 'active',
'failed_login_count': 0,
'permissions': {},
'platform_admin': False,
'auth_type': 'sms_auth',
'password_changed_at': str(datetime.utcnow()),
'services': [],
'organisations': [],
'current_session_id': None,
'logged_in_at': None,
}
def create_active_user_empty_permissions(with_unique_id=False):
user_data = {'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User With Empty Permissions',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'test@user.gov.uk',
'mobile_number': '07700 900763',
'state': 'active',
'failed_login_count': 0,
'permissions': {},
'platform_admin': False,
'auth_type': 'sms_auth',
'organisations': [],
'services': [SERVICE_ONE_ID],
'current_session_id': None,
}
return user_data
def create_active_user_with_permissions(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'test@user.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': False,
'auth_type': 'sms_auth',
'organisations': [ORGANISATION_ID],
'services': [SERVICE_ONE_ID],
'current_session_id': None,
}
def create_active_user_view_permissions(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User With Permissions',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'test@user.gov.uk',
'mobile_number': '07700 900762',
'state': 'active',
'failed_login_count': 0,
'permissions': {SERVICE_ONE_ID: ['view_activity']},
'platform_admin': False,
'auth_type': 'sms_auth',
'organisations': [],
'services': [SERVICE_ONE_ID],
'current_session_id': None,
}
def create_active_caseworking_user(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'caseworker@example.gov.uk',
'mobile_number': '07700 900762',
'state': 'active',
'failed_login_count': 0,
'permissions': {SERVICE_ONE_ID: [
'send_texts',
'send_emails',
'send_letters',
]},
'platform_admin': False,
'auth_type': 'sms_auth',
'organisations': [],
'services': [SERVICE_ONE_ID],
'current_session_id': None,
}
def create_active_user_no_api_key_permission(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User With Permissions',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'test@user.gov.uk',
'mobile_number': '07700 900762',
'state': 'active',
'failed_login_count': 0,
'permissions': {SERVICE_ONE_ID: [
'manage_templates',
'manage_settings',
'view_activity',
]},
'platform_admin': False,
'auth_type': 'sms_auth',
'organisations': [],
'current_session_id': None,
'services': [SERVICE_ONE_ID],
}
def create_active_user_no_settings_permission(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User With Permissions',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'test@user.gov.uk',
'mobile_number': '07700 900762',
'state': 'active',
'failed_login_count': 0,
'permissions': {SERVICE_ONE_ID: [
'manage_templates',
'manage_api_keys',
'view_activity',
]},
'platform_admin': False,
'auth_type': 'sms_auth',
'current_session_id': None,
'services': [SERVICE_ONE_ID],
'organisations': [],
}
def create_active_user_manage_template_permissions(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_uuid(),
'name': 'Test User With Permissions',
'password': 'somepassword',
'password_changed_at': str(datetime.utcnow()),
'email_address': 'test@user.gov.uk',
'mobile_number': '07700 900762',
'state': 'active',
'failed_login_count': 0,
'permissions': {SERVICE_ONE_ID: [
'manage_templates',
'view_activity',
]},
'platform_admin': False,
'auth_type': 'sms_auth',
'organisations': [],
'services': [SERVICE_ONE_ID],
'current_session_id': None,
}
def create_platform_admin_user(with_unique_id=False):
return {
'id': str(uuid4()) if with_unique_id else sample_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,
}