From 31ddd36e2c38a417f48adbedd0615fa08d67cd35 Mon Sep 17 00:00:00 2001 From: Katie Smith Date: Mon, 11 Mar 2019 14:33:51 +0000 Subject: [PATCH] Update invited user tests to take folder_permissions into account --- .../accept_invite/test_accept_invite_rest.py | 1 + tests/app/conftest.py | 3 +- tests/app/dao/test_invited_user_dao.py | 29 +++++++++++++++++-- tests/app/db.py | 3 +- tests/app/invite/test_invite_rest.py | 8 +++-- 5 files changed, 38 insertions(+), 6 deletions(-) diff --git a/tests/app/accept_invite/test_accept_invite_rest.py b/tests/app/accept_invite/test_accept_invite_rest.py index 72e72cea8..f0c806473 100644 --- a/tests/app/accept_invite/test_accept_invite_rest.py +++ b/tests/app/accept_invite/test_accept_invite_rest.py @@ -45,6 +45,7 @@ def test_validate_invitation_token_returns_200_when_token_valid( assert json_resp['data']['service'] == str(sample_invited_user.service_id) assert json_resp['data']['status'] == sample_invited_user.status assert json_resp['data']['permissions'] == sample_invited_user.permissions + assert json_resp['data']['folder_permissions'] == sample_invited_user.folder_permissions if invitation_type == 'organisation': assert json_resp['data'] == sample_invited_org_user.serialize() diff --git a/tests/app/conftest.py b/tests/app/conftest.py index 50b86e4d4..986ef0ead 100644 --- a/tests/app/conftest.py +++ b/tests/app/conftest.py @@ -752,7 +752,8 @@ def sample_invited_user(notify_db, 'service': service, 'email_address': to_email_address, 'from_user': from_user, - 'permissions': 'send_messages,manage_service,manage_api_keys' + 'permissions': 'send_messages,manage_service,manage_api_keys', + 'folder_permissions': ['folder_1_id', 'folder_2_id'], } invited_user = InvitedUser(**data) save_invited_user(invited_user) diff --git a/tests/app/dao/test_invited_user_dao.py b/tests/app/dao/test_invited_user_dao.py index d70632c6b..a0083b253 100644 --- a/tests/app/dao/test_invited_user_dao.py +++ b/tests/app/dao/test_invited_user_dao.py @@ -26,7 +26,8 @@ def test_create_invited_user(notify_db, notify_db_session, sample_service): 'service': sample_service, 'email_address': email_address, 'from_user': invite_from, - 'permissions': 'send_messages,manage_service' + 'permissions': 'send_messages,manage_service', + 'folder_permissions': [] } invited_user = InvitedUser(**data) @@ -39,6 +40,29 @@ def test_create_invited_user(notify_db, notify_db_session, sample_service): assert len(permissions) == 2 assert 'send_messages' in permissions assert 'manage_service' in permissions + assert invited_user.folder_permissions == [] + + +def test_create_invited_user_sets_default_folder_permissions_of_empty_list( + notify_db, + notify_db_session, + sample_service, +): + assert InvitedUser.query.count() == 0 + invite_from = sample_service.users[0] + + data = { + 'service': sample_service, + 'email_address': 'invited_user@service.gov.uk', + 'from_user': invite_from, + 'permissions': 'send_messages,manage_service', + } + + invited_user = InvitedUser(**data) + save_invited_user(invited_user) + + assert InvitedUser.query.count() == 1 + assert invited_user.folder_permissions == [] def test_get_invited_user_by_service_and_id(notify_db, notify_db_session, sample_invited_user): @@ -124,7 +148,8 @@ def make_invitation(user, service, age=timedelta(hours=0), email_address="test@t service=service, status='pending', created_at=datetime.utcnow() - age, - permissions='manage_settings' + permissions='manage_settings', + folder_permissions=[str(uuid.uuid4())] ) db.session.add(verify_code) db.session.commit() diff --git a/tests/app/db.py b/tests/app/db.py index 8c082350a..8d34e8b80 100644 --- a/tests/app/db.py +++ b/tests/app/db.py @@ -739,7 +739,8 @@ def create_invited_user(service=None, 'service': service, 'email_address': to_email_address, 'from_user': from_user, - 'permissions': 'send_messages,manage_service,manage_api_keys' + 'permissions': 'send_messages,manage_service,manage_api_keys', + 'folder_permissions': [str(uuid.uuid4()), str(uuid.uuid4())] } invited_user = InvitedUser(**data) save_invited_user(invited_user) diff --git a/tests/app/invite/test_invite_rest.py b/tests/app/invite/test_invite_rest.py index d7b89bc48..61ad97934 100644 --- a/tests/app/invite/test_invite_rest.py +++ b/tests/app/invite/test_invite_rest.py @@ -33,6 +33,7 @@ def test_create_invited_user( from_user=str(invite_from.id), permissions='send_messages,manage_service,manage_api_keys', auth_type=EMAIL_AUTH_TYPE, + folder_permissions=['folder_1', 'folder_2', 'folder_3'], **extra_args ) @@ -49,6 +50,7 @@ def test_create_invited_user( assert json_resp['data']['permissions'] == 'send_messages,manage_service,manage_api_keys' assert json_resp['data']['auth_type'] == EMAIL_AUTH_TYPE assert json_resp['data']['id'] + assert json_resp['data']['folder_permissions'] == ['folder_1', 'folder_2', 'folder_3'] notification = Notification.query.first() @@ -73,6 +75,7 @@ def test_create_invited_user_without_auth_type(admin_request, sample_service, mo 'email_address': email_address, 'from_user': str(invite_from.id), 'permissions': 'send_messages,manage_service,manage_api_keys', + 'folder_permissions': [] } json_resp = admin_request.post( @@ -85,7 +88,7 @@ def test_create_invited_user_without_auth_type(admin_request, sample_service, mo assert json_resp['data']['auth_type'] == SMS_AUTH_TYPE -def test_create_invited_user_invalid_email(client, sample_service, mocker): +def test_create_invited_user_invalid_email(client, sample_service, mocker, fake_uuid): mocked = mocker.patch('app.celery.provider_tasks.deliver_email.apply_async') email_address = 'notanemail' invite_from = sample_service.users[0] @@ -94,7 +97,8 @@ def test_create_invited_user_invalid_email(client, sample_service, mocker): 'service': str(sample_service.id), 'email_address': email_address, 'from_user': str(invite_from.id), - 'permissions': 'send_messages,manage_service,manage_api_keys' + 'permissions': 'send_messages,manage_service,manage_api_keys', + 'folder_permissions': [fake_uuid, fake_uuid] } data = json.dumps(data)