From 016116c9ccbadb751adbe06269689c896c557b59 Mon Sep 17 00:00:00 2001 From: richard-dds Date: Mon, 12 Nov 2018 14:05:20 -0500 Subject: [PATCH] Send an email --- atst/models/invitation.py | 4 ++++ atst/routes/workspaces.py | 5 ++++- tests/routes/test_workspaces.py | 19 +++++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/atst/models/invitation.py b/atst/models/invitation.py index ca3eba9c..f65ff4da 100644 --- a/atst/models/invitation.py +++ b/atst/models/invitation.py @@ -81,3 +81,7 @@ class Invitation(Base, TimestampsMixin, AuditableMixin): def workspace(self): if self.workspace_role: return self.workspace_role.workspace + + @property + def user_email(self): + return self.workspace_role.user.email diff --git a/atst/routes/workspaces.py b/atst/routes/workspaces.py index e1d6c321..51d04546 100644 --- a/atst/routes/workspaces.py +++ b/atst/routes/workspaces.py @@ -378,5 +378,8 @@ def revoke_invitation(workspace_id, token): @bp.route("/workspaces//invitations//resend", methods=["POST"]) def resend_invitation(workspace_id, token): - Invitations.resend(g.current_user, workspace_id, token) + invite = Invitations.resend(g.current_user, workspace_id, token) + send_invite_email( + g.current_user.full_name, invite.token, invite.user_email + ) return redirect(url_for("workspaces.workspace_members", workspace_id=workspace_id)) diff --git a/tests/routes/test_workspaces.py b/tests/routes/test_workspaces.py index 8d30058f..c773af29 100644 --- a/tests/routes/test_workspaces.py +++ b/tests/routes/test_workspaces.py @@ -457,3 +457,22 @@ def test_revoke_invitation(client, user_session): assert response.status_code == 302 assert invite.is_revoked + + +def test_resend_invitation_sends_email(client, user_session, queue): + user = UserFactory.create() + workspace = WorkspaceFactory.create() + ws_role = WorkspaceRoleFactory.create( + user=user, workspace=workspace, status=WorkspaceRoleStatus.PENDING + ) + invite = InvitationFactory.create( + user_id=user.id, + workspace_role_id=ws_role.id, + status=InvitationStatus.PENDING, + ) + user_session(workspace.owner) + client.post( + url_for("workspaces.resend_invitation", workspace_id=workspace.id, token=invite.token) + ) + + assert len(queue.get_queue()) == 1