28 lines
986 B
Python
28 lines
986 B
Python
import pytest
|
|
from datetime import datetime, timezone, timedelta
|
|
from app.models.account_invite import AccountInvite
|
|
|
|
|
|
def make_invite(**kwargs):
|
|
return AccountInvite(
|
|
account_id=kwargs.get("account_id", "00000000-0000-0000-0000-000000000001"),
|
|
invited_by_id=kwargs.get("invited_by_id", "00000000-0000-0000-0000-000000000002"),
|
|
email=kwargs.get("email", "x@y.com"),
|
|
code=kwargs.get("code", "ABCD1234"),
|
|
role=kwargs.get("role", "engineer"),
|
|
accepted_by_id=kwargs.get("accepted_by_id"),
|
|
expires_at=kwargs.get("expires_at"),
|
|
revoked_at=kwargs.get("revoked_at"),
|
|
)
|
|
|
|
|
|
def test_invite_revoked_is_invalid():
|
|
invite = make_invite(revoked_at=datetime.now(timezone.utc))
|
|
assert invite.is_revoked is True
|
|
assert invite.is_valid is False
|
|
|
|
|
|
def test_invite_unrevoked_unexpired_unused_is_valid():
|
|
invite = make_invite(expires_at=datetime.now(timezone.utc) + timedelta(days=7))
|
|
assert invite.is_valid is True
|