tests: separate "engine" from "db with tables"
This commit is contained in:
parent
a4df79cda3
commit
aba919adca
1 changed files with 14 additions and 10 deletions
24
tests.py
24
tests.py
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue