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