From 61d9916caee27c9fd0ecf048faa04002ac3ae88e Mon Sep 17 00:00:00 2001 From: 283375 Date: Sat, 13 Apr 2024 22:53:55 +0800 Subject: [PATCH] feat: db pytest fixtures --- tests/conftest.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 tests/conftest.py diff --git a/tests/conftest.py b/tests/conftest.py new file mode 100644 index 0000000..70fbd53 --- /dev/null +++ b/tests/conftest.py @@ -0,0 +1,27 @@ +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