Coverage for src/cstlcore/database/dependencies.py: 47%

15 statements  

« prev     ^ index     » next       coverage.py v7.9.1, created at 2026-02-19 12:46 +0000

1from typing import Generator 

2 

3from fastapi import HTTPException 

4from loguru import logger 

5from sqlalchemy.exc import SQLAlchemyError 

6from sqlmodel import Session 

7 

8from cstlcore.database.engine import engine 

9 

10 

11def get_session() -> Generator[Session, None, None]: 

12 """ 

13 Dependency that provides a SQLAlchemy session for database operations. 

14 """ 

15 session = Session(engine) 

16 try: 

17 yield session 

18 except SQLAlchemyError as e: 

19 session.rollback() 

20 logger.error("SQLAlchemy error during session use: %s", e) 

21 raise HTTPException(status_code=400, detail=f"Database error: {str(e)}") 

22 finally: 

23 session.close()