Files

46 lines
1.3 KiB
Python

"""Seed demo user for authentication testing."""
import os
from sqlalchemy.orm import Session
from app.database import SessionLocal, Base, engine
from app.models import User
from app.auth import hash_password
# Create tables
Base.metadata.create_all(bind=engine)
# Get demo credentials from environment
DEMO_EMAIL = os.getenv("DEMO_EMAIL", "demo@example.com")
DEMO_PASSWORD = os.getenv("DEMO_PASSWORD", "demo123")
DEMO_USERNAME = "demo"
def seed_demo_user():
"""Create demo user idempotently."""
db: Session = SessionLocal()
try:
# Check if demo user already exists
existing_user = db.query(User).filter(User.username == DEMO_USERNAME).first()
if existing_user:
# Update password if it exists
existing_user.hashed_password = hash_password(DEMO_PASSWORD)
db.commit()
print(f"Updated demo user: {DEMO_USERNAME}")
else:
# Create new demo user
demo_user = User(
username=DEMO_USERNAME,
email=DEMO_EMAIL,
hashed_password=hash_password(DEMO_PASSWORD)
)
db.add(demo_user)
db.commit()
print(f"Created demo user: {DEMO_USERNAME}")
finally:
db.close()
if __name__ == "__main__":
seed_demo_user()