import sqlalchemy as sa from anydi import Module, provider from jinja2sql import Jinja2SQL from app.adapters.db import Database from app.config import Settings from tests.unit.adapters.db import TestDatabase class TestModule(Module): @provider(scope="singleton", override=True) def db(self, settings: Settings, jinja2sql: Jinja2SQL) -> Database: return TestDatabase( url=sa.URL.create( drivername="postgresql+psycopg", username=settings.snowflake_user, password=settings.snowflake_password.get_secret_value() if settings.snowflake_password else None, host=settings.snowflake_host, port=settings.snowflake_port, database=settings.snowflake_database, ), session_args={ "expire_on_commit": False, "autoflush": True, }, jinja2sql=jinja2sql, )