()
| 86 | |
| 87 | @asynccontextmanager |
| 88 | async def get_session() -> AsyncSession: |
| 89 | engine = get_async_engine(config.SAVE_DATA_OPTION) |
| 90 | if not engine: |
| 91 | yield None |
| 92 | return |
| 93 | AsyncSessionFactory = sessionmaker(engine, class_=AsyncSession, expire_on_commit=False) |
| 94 | session = AsyncSessionFactory() |
| 95 | try: |
| 96 | yield session |
| 97 | await session.commit() |
| 98 | except Exception as e: |
| 99 | await session.rollback() |
| 100 | raise e |
| 101 | finally: |
| 102 | await session.close() |
no test coverage detected