atst/tests/models/test_invitation.py
2019-03-13 09:45:57 -04:00

48 lines
1.5 KiB
Python

import pytest
import datetime
from atst.models.invitation import Invitation, Status
from atst.models.portfolio_role import Status as PortfolioRoleStatus
from tests.factories import (
InvitationFactory,
PortfolioFactory,
UserFactory,
PortfolioRoleFactory,
)
def test_expired_invite_is_not_revokable():
portfolio = PortfolioFactory.create()
user = UserFactory.create()
portfolio_role = PortfolioRoleFactory.create(
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
)
invite = InvitationFactory.create(
expiration_time=datetime.datetime.now() - datetime.timedelta(minutes=60),
portfolio_role=portfolio_role,
)
assert not invite.is_revokable
def test_unexpired_invite_is_revokable():
portfolio = PortfolioFactory.create()
user = UserFactory.create()
portfolio_role = PortfolioRoleFactory.create(
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
)
invite = InvitationFactory.create(portfolio_role=portfolio_role)
assert invite.is_revokable
def test_invite_is_not_revokable_if_invite_is_not_pending():
portfolio = PortfolioFactory.create()
user = UserFactory.create()
portfolio_role = PortfolioRoleFactory.create(
portfolio=portfolio, user=user, status=PortfolioRoleStatus.PENDING
)
invite = InvitationFactory.create(
portfolio_role=portfolio_role, status=Status.ACCEPTED
)
assert not invite.is_revokable