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:
|
Yields:
|
||||||
The engine used to create the database.
|
The engine used to create the database.
|
||||||
"""
|
"""
|
||||||
from sqlmodel import SQLModel, create_engine
|
|
||||||
|
|
||||||
engine = create_engine("sqlite:///:memory:")
|
engine = create_engine("sqlite:///:memory:")
|
||||||
|
|
||||||
SQLModel.metadata.create_all(engine)
|
|
||||||
yield engine
|
yield engine
|
||||||
|
|
||||||
engine.dispose()
|
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")
|
@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.
|
"""Creates a new Teilchen and stores it in the database.
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
|
|
@ -128,20 +132,20 @@ def teilchen_in_db(engine: Engine) -> Generator[Teilchen]:
|
||||||
teilchen = Teilchen(
|
teilchen = Teilchen(
|
||||||
id=uuid.uuid7(), name="TT", description="Test Teilchen", number=1, tags="", text=""
|
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.add(teilchen)
|
||||||
session.commit()
|
session.commit()
|
||||||
session.refresh(teilchen)
|
session.refresh(teilchen)
|
||||||
|
|
||||||
yield teilchen
|
yield teilchen
|
||||||
|
|
||||||
with Session(engine) as session:
|
with Session(app_db) as session:
|
||||||
session.delete(teilchen)
|
session.delete(teilchen)
|
||||||
session.commit()
|
session.commit()
|
||||||
|
|
||||||
|
|
||||||
async def test_loadinitialdata_returns_expected_data(engine: Engine, db_teilchen: Teilchen):
|
async def test_loadinitialdata_returns_expected_data(app_db: Engine, db_teilchen: Teilchen):
|
||||||
all_data: Sequence[tuple] = await load_initial_data(engine)
|
all_data: Sequence[tuple] = await load_initial_data(app_db)
|
||||||
assert len(all_data) == 1
|
assert len(all_data) == 1
|
||||||
|
|
||||||
fetched_data: tuple = all_data[0]
|
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
|
assert fetched_teilchen == db_teilchen
|
||||||
|
|
||||||
|
|
||||||
async def test_data_provided_to_addtodatabase_ends_up_in_database(engine: Engine):
|
async def test_data_provided_to_addtodatabase_ends_up_in_database(app_db: Engine):
|
||||||
all_data = await load_initial_data(engine)
|
all_data = await load_initial_data(app_db)
|
||||||
assert len(all_data) == 0
|
assert len(all_data) == 0
|
||||||
|
|
||||||
teilchen = Teilchen(
|
teilchen = Teilchen(
|
||||||
id=uuid.uuid7(), name="test", description="test", tags="#test", number=1, text="test"
|
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
|
assert teilchen == db_teilchen
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue