mirror of https://github.com/stijndcl/didier
Give up on migrations in tests
parent
b4a3a87e6e
commit
60382b8eab
|
@ -154,6 +154,3 @@ cython_debug/
|
|||
|
||||
# PyCharm
|
||||
.idea/
|
||||
|
||||
# SQLite testing database
|
||||
tests.db
|
|
@ -68,10 +68,4 @@ async def run_migrations_online() -> None:
|
|||
if context.is_offline_mode():
|
||||
run_migrations_offline()
|
||||
else:
|
||||
# Wonky way to use the Pytest event loop instead of another one
|
||||
try:
|
||||
loop = asyncio.get_running_loop()
|
||||
if loop and loop.is_running():
|
||||
loop.create_task(run_migrations_online())
|
||||
except RuntimeError:
|
||||
asyncio.run(run_migrations_online())
|
||||
asyncio.run(run_migrations_online())
|
||||
|
|
|
@ -17,6 +17,7 @@ engine = create_async_engine(
|
|||
database=settings.DB_NAME,
|
||||
),
|
||||
pool_pre_ping=True,
|
||||
future=True,
|
||||
)
|
||||
|
||||
DBSession = sessionmaker(autocommit=False, autoflush=False, bind=engine, class_=AsyncSession, expire_on_commit=False)
|
||||
|
|
|
@ -1,4 +1,3 @@
|
|||
aiosqlite==0.17.0
|
||||
black==22.3.0
|
||||
mypy==0.961
|
||||
pylint==2.14.1
|
||||
|
|
|
@ -5,7 +5,6 @@ from unittest.mock import MagicMock
|
|||
import pytest
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
from alembic import config, command
|
||||
from database.engine import engine
|
||||
from database.models import Base
|
||||
from didier import Didier
|
||||
|
@ -19,16 +18,14 @@ def event_loop() -> Generator:
|
|||
|
||||
|
||||
@pytest.fixture(scope="session")
|
||||
async def tables(event_loop):
|
||||
async def tables():
|
||||
"""Initialize a database before the tests, and then tear it down again"""
|
||||
alembic_config: config.Config = config.Config("alembic.ini")
|
||||
command.upgrade(alembic_config, "head")
|
||||
yield
|
||||
command.downgrade(alembic_config, "base")
|
||||
async with engine.begin() as connection:
|
||||
await connection.run_sync(Base.metadata.create_all)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
async def database_session(tables, event_loop) -> AsyncGenerator[AsyncSession, None]:
|
||||
async def database_session(tables) -> AsyncGenerator[AsyncSession, None]:
|
||||
"""Fixture to create a session for every test
|
||||
Rollbacks the transaction afterwards so that the future tests start with a clean database
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue