Push V1 app

This commit is contained in:
jlacoste
2026-06-26 11:54:29 +02:00
parent 8b7caa1a5a
commit 9d1990523f
3881 changed files with 1291493 additions and 1 deletions
+64
View File
@@ -0,0 +1,64 @@
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()