mirror of https://github.com/stijndcl/didier
				
				
				
			Use alembic in tests again?
							parent
							
								
									5c1732d119
								
							
						
					
					
						commit
						b4a3a87e6e
					
				|  | @ -68,4 +68,10 @@ async def run_migrations_online() -> None: | |||
| if context.is_offline_mode(): | ||||
|     run_migrations_offline() | ||||
| else: | ||||
|     asyncio.run(run_migrations_online()) | ||||
|     # 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()) | ||||
|  |  | |||
|  | @ -5,6 +5,7 @@ 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 | ||||
|  | @ -20,8 +21,10 @@ def event_loop() -> Generator: | |||
| @pytest.fixture(scope="session") | ||||
| async def tables(event_loop): | ||||
|     """Initialize a database before the tests, and then tear it down again""" | ||||
|     async with engine.begin() as connection: | ||||
|         await connection.run_sync(Base.metadata.create_all) | ||||
|     alembic_config: config.Config = config.Config("alembic.ini") | ||||
|     command.upgrade(alembic_config, "head") | ||||
|     yield | ||||
|     command.downgrade(alembic_config, "base") | ||||
| 
 | ||||
| 
 | ||||
| @pytest.fixture | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue