Coverage for backend/app/database.py: 71%

14 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2025-09-22 15:38 +0000

1"""Database functions""" 

2 

3from typing import Generator, Any 

4 

5from sqlalchemy import create_engine 

6from sqlalchemy.ext.declarative import declarative_base 

7from sqlalchemy.orm import sessionmaker, Session 

8 

9from app.config import settings 

10 

11SQLALCHEMY_DATABASE_URL = ( 

12 f"postgresql://{settings.database_username}:{settings.database_password}@" 

13 f"{settings.database_hostname}:{settings.database_port}/{settings.database_name}" 

14) 

15engine = create_engine(SQLALCHEMY_DATABASE_URL) 

16session_local = sessionmaker(autocommit=False, autoflush=False, bind=engine) 

17Base = declarative_base() 

18 

19 

20def get_db() -> Generator[Session, Any, None]: 

21 """Get the database session.""" 

22 

23 db = session_local() 

24 try: 

25 yield db 

26 finally: 

27 db.close()