Files
wallet/backend/seed_demo.py
T

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()