arcaea-offline/tests/conftest.py
2024-04-13 22:53:55 +08:00

28 lines
665 B
Python

import pytest
from sqlalchemy import create_engine
from sqlalchemy.orm import Session, sessionmaker
# region sqlalchemy fixtures
# from https://medium.com/@vittorio.camisa/agile-database-integration-tests-with-python-sqlalchemy-and-factory-boy-6824e8fe33a1
engine = create_engine("sqlite:///:memory:")
Session = sessionmaker()
@pytest.fixture(scope="module")
def db_conn():
connection = engine.connect()
yield connection
connection.close()
@pytest.fixture(scope="function")
def db_session(db_conn):
transaction = db_conn.begin()
session = Session(bind=db_conn)
yield session
session.close()
transaction.rollback()
# endregion