init db with test data
This commit is contained in:
63
initdb.py
Normal file
63
initdb.py
Normal file
@@ -0,0 +1,63 @@
|
|||||||
|
from types import resolve_bases
|
||||||
|
|
||||||
|
import models
|
||||||
|
from db import engine
|
||||||
|
from sqlalchemy import MetaData
|
||||||
|
|
||||||
|
from passlib.hash import argon2
|
||||||
|
|
||||||
|
|
||||||
|
def write_db(db, model):
|
||||||
|
db.add(model)
|
||||||
|
db.commit()
|
||||||
|
|
||||||
|
def clean_db():
|
||||||
|
models.Base.metadata.drop_all(bind=engine)
|
||||||
|
|
||||||
|
|
||||||
|
def init_test_db(db):
|
||||||
|
# clean up everything before starting
|
||||||
|
# models.Attendee.__table__.drop(engine)
|
||||||
|
# models.Event.__table__.drop(engine)
|
||||||
|
# models.Team.__table__.drop(engine)
|
||||||
|
# models.Contract.__table__.drop(engine)
|
||||||
|
# models.Customer.__table__.drop(engine)
|
||||||
|
# models.Collaborator.__table__.drop(engine)
|
||||||
|
# models.Credentials.__table__.drop(engine)
|
||||||
|
|
||||||
|
# create teams
|
||||||
|
teams = ["commercial", "management", "support"]
|
||||||
|
for item in teams:
|
||||||
|
team = models.Team(name=item)
|
||||||
|
write_db(db, team)
|
||||||
|
|
||||||
|
# create a commercial
|
||||||
|
com1 = models.Collaborator(name="com1",
|
||||||
|
email="com1@truc.fr",
|
||||||
|
phone=1092837465,
|
||||||
|
team_id=1,
|
||||||
|
)
|
||||||
|
write_db(db, com1)
|
||||||
|
commercial_password = models.Credentials(
|
||||||
|
collaborator_id=com1.id,
|
||||||
|
password_hash=argon2.hash("testtest"))
|
||||||
|
write_db(db, commercial_password)
|
||||||
|
|
||||||
|
# create a manager
|
||||||
|
man = models.Collaborator(name="admin",
|
||||||
|
email="pp",
|
||||||
|
phone=2,
|
||||||
|
team_id=2,
|
||||||
|
)
|
||||||
|
write_db(db, man)
|
||||||
|
man_password = models.Credentials(
|
||||||
|
collaborator_id = man.id,
|
||||||
|
password_hash = argon2.hash("testtest"))
|
||||||
|
write_db(db, man_password)
|
||||||
|
|
||||||
|
# create an attendee
|
||||||
|
attendee = models.Attendee(name="Guest")
|
||||||
|
write_db(db, attendee)
|
||||||
|
# data = [com1, commercial_password, attendee]
|
||||||
|
|
||||||
|
|
||||||
3
main.py
3
main.py
@@ -4,11 +4,13 @@ from db import engine, session
|
|||||||
from controllers import App
|
from controllers import App
|
||||||
from views import View
|
from views import View
|
||||||
from authentication import PasswordTools
|
from authentication import PasswordTools
|
||||||
|
from initdb import init_test_db
|
||||||
|
|
||||||
import sentry_sdk
|
import sentry_sdk
|
||||||
import config
|
import config
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
sentry_sdk.init(
|
sentry_sdk.init(
|
||||||
dsn=config.sentry_url,
|
dsn=config.sentry_url,
|
||||||
@@ -37,4 +39,5 @@ def main():
|
|||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
models.Base.metadata.create_all(bind=engine)
|
models.Base.metadata.create_all(bind=engine)
|
||||||
|
init_test_db(session)
|
||||||
main()
|
main()
|
||||||
|
|||||||
Reference in New Issue
Block a user