diff --git a/atst/domain/invitations.py b/atst/domain/invitations.py index bde7dbce..bb653693 100644 --- a/atst/domain/invitations.py +++ b/atst/domain/invitations.py @@ -99,3 +99,8 @@ class Invitations(object): db.session.commit() return invite + + @classmethod + def revoke(cls, token): + invite = Invitations._get(token) + return Invitations._update_status(invite, InvitationStatus.REVOKED) diff --git a/tests/domain/test_invitations.py b/tests/domain/test_invitations.py index 2ae38776..6f5a0093 100644 --- a/tests/domain/test_invitations.py +++ b/tests/domain/test_invitations.py @@ -93,3 +93,13 @@ def test_accept_invitation_twice(): Invitations.accept(user, invite.token) with pytest.raises(InvitationError): Invitations.accept(user, invite.token) + + +def test_revoke_invitation(): + workspace = WorkspaceFactory.create() + user = UserFactory.create() + ws_role = WorkspaceRoleFactory.create(user=user, workspace=workspace) + invite = Invitations.create(ws_role, workspace.owner, user) + assert invite.is_pending + Invitations.revoke(invite.token) + assert invite.is_revoked