Initial commit: site monorepo with API, web, and infra.
Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
from app.db.seed import run_seed
|
||||
from app.modules.users.repository import get_user_by_email
|
||||
|
||||
|
||||
def test_seed_ensures_admin_is_superuser():
|
||||
admin = get_user_by_email("admin@compton.example")
|
||||
assert admin is not None
|
||||
admin.is_superuser = False
|
||||
from app.modules.users import repository
|
||||
|
||||
repository.update_user(admin)
|
||||
|
||||
run_seed(include_demo_pages=False)
|
||||
|
||||
refreshed = get_user_by_email("admin@compton.example")
|
||||
assert refreshed is not None
|
||||
assert refreshed.is_superuser is True
|
||||
|
||||
|
||||
def test_seed_ensures_ops_is_not_superuser():
|
||||
ops = get_user_by_email("ops@compton.example")
|
||||
assert ops is not None
|
||||
ops.is_superuser = True
|
||||
from app.modules.users import repository
|
||||
|
||||
repository.update_user(ops)
|
||||
|
||||
run_seed(include_demo_pages=False)
|
||||
|
||||
refreshed = get_user_by_email("ops@compton.example")
|
||||
assert refreshed is not None
|
||||
assert refreshed.is_superuser is False
|
||||
@@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from datetime import UTC, datetime, timedelta
|
||||
|
||||
from app.core.database import session_scope
|
||||
from app.db.token_cleanup import cleanup_expired_tokens
|
||||
from app.modules.auth.models import EmailVerificationToken, PasswordResetToken, RefreshToken
|
||||
from app.modules.users.repository import get_user_by_email
|
||||
|
||||
|
||||
def test_cleanup_expired_tokens_removes_stale_rows():
|
||||
user = get_user_by_email("admin@compton.example")
|
||||
now = datetime.now(UTC)
|
||||
with session_scope() as db:
|
||||
db.add(
|
||||
RefreshToken(
|
||||
user_id=user.id,
|
||||
token_hash="f" * 64,
|
||||
family_id="fam-cleanup-1",
|
||||
expires_at=now - timedelta(days=2),
|
||||
revoked_at=now - timedelta(days=2),
|
||||
)
|
||||
)
|
||||
db.add(
|
||||
PasswordResetToken(
|
||||
user_id=user.id,
|
||||
token_hash="e" * 64,
|
||||
expires_at=now - timedelta(days=1),
|
||||
used_at=None,
|
||||
)
|
||||
)
|
||||
db.add(
|
||||
EmailVerificationToken(
|
||||
user_id=user.id,
|
||||
token_hash="d" * 64,
|
||||
expires_at=now - timedelta(days=1),
|
||||
used_at=None,
|
||||
)
|
||||
)
|
||||
|
||||
result = cleanup_expired_tokens(retention_days=1)
|
||||
assert result["refresh_tokens_deleted"] >= 1
|
||||
assert result["password_reset_tokens_deleted"] >= 1
|
||||
assert result["email_verification_tokens_deleted"] >= 1
|
||||
Reference in New Issue
Block a user