tests: sqlite memory db when run in testing

This commit is contained in:
Chris Milne 2026-05-29 11:00:01 +01:00
parent 53e01033c4
commit 05a405cbe6
2 changed files with 14 additions and 4 deletions

View file

@ -48,6 +48,9 @@ _QUOTED_DATABASE_PASSWORD = parse.quote_plus(str(_DATABASE_CREDENTIAL_PASSWORD))
SQLALCHEMY_DATABASE_URI = SecretStr(f"postgresql+psycopg://{_DATABASE_CREDENTIAL_USER}:{_QUOTED_DATABASE_PASSWORD}@{DATABASE_HOSTNAME}:{DATABASE_PORT}/{DATABASE_NAME}")
if settings.ENVIRONMENT == Environment.TESTING:
SQLALCHEMY_DATABASE_URI = SecretStr("sqlite:///:memory:")
app_configs: dict[str, Any] = {"title": "App API"}
if settings.ENVIRONMENT.is_deployed:
app_configs["root_path"] = f"/v{settings.APP_VERSION}"

View file

@ -7,13 +7,19 @@ Exports:
"""
from typing import Annotated
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker, Session
from sqlalchemy.orm import DeclarativeBase, sessionmaker, Session
from fastapi import Depends
from src.config import SQLALCHEMY_DATABASE_URI
from src.constants import Environment
from src.config import SQLALCHEMY_DATABASE_URI, settings as global_settings
engine = create_engine(SQLALCHEMY_DATABASE_URI.get_secret_value())
if global_settings.ENVIRONMENT == Environment.TESTING:
connect_args = {"check_same_thread": False}
else:
connect_args = {}
engine = create_engine(SQLALCHEMY_DATABASE_URI.get_secret_value(), connect_args=connect_args)
SessionLocal = sessionmaker(autocommit=False, autoflush=False, bind=engine)
@ -30,4 +36,5 @@ def get_db():
db_dependency = Annotated[Session, Depends(get_db)]
Base = declarative_base()
class Base(DeclarativeBase):
pass