diff --git a/tests/app/conftest.py b/tests/app/conftest.py index 13e0c0b09..249dcdcf8 100644 --- a/tests/app/conftest.py +++ b/tests/app/conftest.py @@ -556,6 +556,27 @@ def sample_invited_user(notify_db_session): return invited_user +@pytest.fixture(scope="function") +def sample_expired_user(notify_db_session): + service = create_service(check_if_service_exists=True) + to_email_address = "expired_user@digital.fake.gov" + + from_user = service.users[0] + + data = { + "service": service, + "email_address": to_email_address, + "from_user": from_user, + "permissions": "send_messages,manage_service,manage_api_keys", + "folder_permissions": ["folder_1_id", "folder_2_id"], + "created_at": datetime.utcnow() - timedelta(days=3), + "status": "expired", + } + expired_user = InvitedUser(**data) + save_invited_user(expired_user) + return expired_user + + @pytest.fixture(scope="function") def sample_invited_org_user(sample_user, sample_organization): return create_invited_org_user(sample_organization, sample_user) diff --git a/tests/app/service_invite/test_service_invite_rest.py b/tests/app/service_invite/test_service_invite_rest.py index 595303bc8..80d32a3e4 100644 --- a/tests/app/service_invite/test_service_invite_rest.py +++ b/tests/app/service_invite/test_service_invite_rest.py @@ -141,7 +141,7 @@ def test_create_invited_user_invalid_email(client, sample_service, mocker, fake_ def test_get_all_invited_users_by_service(client, notify_db_session, sample_service): invites = [] for i in range(0, 5): - email = "invited_user_{}@service.gov.uk".format(i) + email = f"invited_user_{i}@service.gov.uk" invited_user = create_invited_user(sample_service, to_email_address=email) invites.append(invited_user) @@ -202,11 +202,24 @@ def test_get_invited_user_by_service_when_user_does_not_belong_to_the_service( assert json_resp["result"] == "error" +def test_resend_expired_invite(client, sample_expired_user): + url = f"/service/{sample_expired_user.service_id}/invite/{sample_expired_user.id}" + # TODO: Don't actually send email, need to mock it out. + auth_header = create_admin_authorization_header() + response = client.post( + url, + data=json.dumps(data), + headers=[("Content-Type", "application/json"), auth_header], + ) + + assert response.status_code == 200 + json_resp = json.loads(response.get_data(as_text=True))["data"] + assert json_resp["status"] == "cancelled" + + def test_update_invited_user_set_status_to_cancelled(client, sample_invited_user): data = {"status": "cancelled"} - url = "/service/{0}/invite/{1}".format( - sample_invited_user.service_id, sample_invited_user.id - ) + url = f"/service/{sample_invited_user.service_id}/invite/{sample_invited_user.id}" auth_header = create_admin_authorization_header() response = client.post( url, @@ -223,7 +236,7 @@ def test_update_invited_user_for_wrong_service_returns_404( client, sample_invited_user, fake_uuid ): data = {"status": "cancelled"} - url = "/service/{0}/invite/{1}".format(fake_uuid, sample_invited_user.id) + url = f"/service/{fake_uuid}/invite/{sample_invited_user.id}" auth_header = create_admin_authorization_header() response = client.post( url, @@ -237,9 +250,7 @@ def test_update_invited_user_for_wrong_service_returns_404( def test_update_invited_user_for_invalid_data_returns_400(client, sample_invited_user): data = {"status": "garbage"} - url = "/service/{0}/invite/{1}".format( - sample_invited_user.service_id, sample_invited_user.id - ) + url = f"/service/{sample_invited_user.service_id}/invite/{sample_invited_user.id}" auth_header = create_admin_authorization_header() response = client.post( url, @@ -291,7 +302,7 @@ def test_validate_invitation_token_for_expired_token_returns_400(client): current_app.config["SECRET_KEY"], current_app.config["DANGEROUS_SALT"], ) - url = "/invite/service/{}".format(token) + url = f"/invite/service/{token}" auth_header = create_admin_authorization_header() response = client.get( url, headers=[("Content-Type", "application/json"), auth_header] @@ -312,7 +323,7 @@ def test_validate_invitation_token_returns_400_when_invited_user_does_not_exist( current_app.config["SECRET_KEY"], current_app.config["DANGEROUS_SALT"], ) - url = "/invite/service/{}".format(token) + url = f"/invite/service/{token}" auth_header = create_admin_authorization_header() response = client.get( url, headers=[("Content-Type", "application/json"), auth_header] @@ -331,7 +342,7 @@ def test_validate_invitation_token_returns_400_when_token_is_malformed(client): current_app.config["DANGEROUS_SALT"], )[:-2] - url = "/invite/service/{}".format(token) + url = f"/invite/service/{token}" auth_header = create_admin_authorization_header() response = client.get( url, headers=[("Content-Type", "application/json"), auth_header]