Push V1 app
This commit is contained in:
@@ -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()
|
||||
Reference in New Issue
Block a user