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
« prev ^ index » next coverage.py v7.10.7, created at 2025-09-22 15:38 +0000
1"""Database functions"""
3from typing import Generator, Any
5from sqlalchemy import create_engine
6from sqlalchemy.ext.declarative import declarative_base
7from sqlalchemy.orm import sessionmaker, Session
9from app.config import settings
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()
20def get_db() -> Generator[Session, Any, None]:
21 """Get the database session."""
23 db = session_local()
24 try:
25 yield db
26 finally:
27 db.close()