test dirs + fixture session/init in conftest
This commit is contained in:
53
tests/conftest.py
Normal file
53
tests/conftest.py
Normal file
@@ -0,0 +1,53 @@
|
||||
import pytest
|
||||
from models import Base, Credentials, Collaborator, Customer, Contract, Event
|
||||
from db import engine
|
||||
from sqlalchemy.orm import Session
|
||||
from passlib.hash import argon2
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def session():
|
||||
if not engine.url.get_backend_name() == "sqlite":
|
||||
raise RuntimeError("Use SQLite backend to run tests\n"
|
||||
"with command :\n"
|
||||
"DB_URL=sqlite:///:memory: pytest -s -v .")
|
||||
|
||||
Base.metadata.create_all(engine)
|
||||
try:
|
||||
with Session() as session:
|
||||
yield session
|
||||
finally:
|
||||
Base.metadata.drop_all(engine)
|
||||
|
||||
|
||||
@pytest.fixture(scope="function")
|
||||
def seed(session):
|
||||
session.add_all(
|
||||
[
|
||||
Collaborator(name="Com", email="a", phone=1, team_id=1),
|
||||
Collaborator(name="Man", email="b", phone=2, team_id=2),
|
||||
Collaborator(name="Sup", email="c", phone=3, team_id=3),
|
||||
Customer(name="Cust1", email="aa", phone=11, company="Cust1CO"),
|
||||
Customer(name="Cust2", email="bb", phone=22, company="Cust2CO"),
|
||||
]
|
||||
)
|
||||
session.commit()
|
||||
session.add_all(
|
||||
[
|
||||
Credentials(collaborator_id=1,
|
||||
password_hash=argon2.hash("test")),
|
||||
Credentials(collaborator_id=2,
|
||||
password_hash=argon2.hash("test")),
|
||||
Credentials(collaborator_id=3,
|
||||
password_hash=argon2.hash("test")),
|
||||
Contract(signed=0, amount=200000, customer_id=1, commercial_id=1),
|
||||
]
|
||||
)
|
||||
session.commit()
|
||||
session.add_all(
|
||||
[
|
||||
Event(name="Event1", customer_contact="Test",
|
||||
date_start="01.01.01", date_end="02.01.01",
|
||||
location=".",contract_id=1, customer_id=1)
|
||||
]
|
||||
)
|
||||
session.commit()
|
||||
Reference in New Issue
Block a user