Testing speedup with in memory SQLite (#189)

If no SQLite File is written and deleted testing is MUCH faster.
This commit is contained in:
Philipp Horstenkamp 2023-10-04 19:36:57 +02:00 committed by GitHub
parent aa6c0efc87
commit 030ad00c7d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -1,12 +1,10 @@
"""Global configurations and definitions for pytest.""" """Global configurations and definitions for pytest."""
import datetime import datetime
import os
from collections.abc import Generator from collections.abc import Generator
from inspect import getmembers, isfunction from inspect import getmembers, isfunction
from typing import Any from typing import Any
import pytest import pytest
from sqlalchemy.engine import Engine
from sqlalchemy.orm import Session, sessionmaker from sqlalchemy.orm import Session, sessionmaker
from aki_prj23_transparenzregister.config.config_template import SQLiteConnectionString from aki_prj23_transparenzregister.config.config_template import SQLiteConnectionString
@ -41,20 +39,12 @@ def _clear_caches() -> Generator[None, None, None]:
@pytest.fixture() @pytest.fixture()
def empty_db() -> Generator[Session, None, None]: def empty_db() -> Generator[Session, None, None]:
"""Generates a db Session to a sql_lite db.""" """Generates a db Session to a sql_lite db."""
if os.path.exists("test-db.db"): engine = get_engine(SQLiteConnectionString(":memory:"))
os.remove("test-db.db") db = sessionmaker(autocommit=False, autoflush=False, bind=engine)()
db = sessionmaker(
autocommit=False,
autoflush=False,
bind=get_engine(SQLiteConnectionString("test-db.db")),
)()
init_db(db) init_db(db)
yield db yield db
db.close() db.close()
bind = db.bind engine.dispose()
assert isinstance(bind, Engine)
bind.dispose()
os.remove("test-db.db")
@pytest.fixture() @pytest.fixture()