Files
Cellar---Alcools-collection/backend/tests/conftest.py
T
2026-06-26 11:54:29 +02:00

65 lines
1.6 KiB
Python

import os
import secrets
from datetime import datetime, timedelta
os.environ["SECRET_KEY"] = secrets.token_hex(32)
os.environ["ADMIN_PASSWORD"] = "TestPass123"
from fastapi.testclient import TestClient # noqa: E402
from main import app # noqa: E402
from database import SessionLocal, Base, engine # noqa: E402
from models import User, Invitation # noqa: E402
from auth import hash_password, create_access_token # noqa: E402
ADMIN_PASSWORD = "TestPass123"
def setup():
Base.metadata.drop_all(bind=engine)
Base.metadata.create_all(bind=engine)
db = SessionLocal()
try:
admin = User(
username="admin",
email="admin@cellar.local",
hashed_password=hash_password(ADMIN_PASSWORD),
is_admin=True,
)
db.add(admin)
db.commit()
finally:
db.close()
setup()
client = TestClient(app)
def get_admin_token() -> str:
db = SessionLocal()
try:
admin = db.query(User).filter(User.username == "admin").first()
token = create_access_token({"sub": str(admin.id), "token_version": admin.token_version})
return token
finally:
db.close()
def get_invite_token() -> str:
db = SessionLocal()
try:
admin = db.query(User).filter(User.username == "admin").first()
invite = Invitation(
token=secrets.token_urlsafe(32),
created_by=admin.id,
expires_at=datetime.utcnow() + timedelta(days=7),
)
db.add(invite)
db.commit()
db.refresh(invite)
return invite.token
finally:
db.close()