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