tests: separate "engine" from "db with tables"

This commit is contained in:
bronsen 2026-02-22 18:57:01 +01:00
parent a4df79cda3
commit aba919adca

View file

@ -103,18 +103,22 @@ def in_memory_db() -> Generator[Engine]:
Yields:
The engine used to create the database.
"""
from sqlmodel import SQLModel, create_engine
engine = create_engine("sqlite:///:memory:")
SQLModel.metadata.create_all(engine)
yield engine
engine.dispose()
@pytest.fixture(name="app_db")
def database_ready_to_use(engine: Engine) -> Generator[Engine]:
SQLModel.metadata.create_all(engine)
yield engine
@pytest.fixture(name="db_teilchen")
def teilchen_in_db(engine: Engine) -> Generator[Teilchen]:
def teilchen_in_db(app_db: Engine) -> Generator[Teilchen]:
"""Creates a new Teilchen and stores it in the database.
Args:
@ -128,20 +132,20 @@ def teilchen_in_db(engine: Engine) -> Generator[Teilchen]:
teilchen = Teilchen(
id=uuid.uuid7(), name="TT", description="Test Teilchen", number=1, tags="", text=""
)
with Session(engine) as session:
with Session(app_db) as session:
session.add(teilchen)
session.commit()
session.refresh(teilchen)
yield teilchen
with Session(engine) as session:
with Session(app_db) as session:
session.delete(teilchen)
session.commit()
async def test_loadinitialdata_returns_expected_data(engine: Engine, db_teilchen: Teilchen):
all_data: Sequence[tuple] = await load_initial_data(engine)
async def test_loadinitialdata_returns_expected_data(app_db: Engine, db_teilchen: Teilchen):
all_data: Sequence[tuple] = await load_initial_data(app_db)
assert len(all_data) == 1
fetched_data: tuple = all_data[0]
@ -159,14 +163,14 @@ async def test_loadinitialdata_returns_expected_data(engine: Engine, db_teilchen
assert fetched_teilchen == db_teilchen
async def test_data_provided_to_addtodatabase_ends_up_in_database(engine: Engine):
all_data = await load_initial_data(engine)
async def test_data_provided_to_addtodatabase_ends_up_in_database(app_db: Engine):
all_data = await load_initial_data(app_db)
assert len(all_data) == 0
teilchen = Teilchen(
id=uuid.uuid7(), name="test", description="test", tags="#test", number=1, text="test"
)
db_teilchen = await add_to_database(teilchen, engine)
db_teilchen = await add_to_database(teilchen, app_db)
assert teilchen == db_teilchen