import fakeredis import redis import sqlalchemy as sa from anydi import Module, provider from fansifter_common.adapters.db import Database from app.config import Settings class TestModule(Module): @provider(scope="singleton", override=True) def db(self, settings: Settings) -> Database: return Database( 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, }, ) @provider(scope="singleton", override=True) def redis_client(self) -> redis.Redis: return fakeredis.FakeRedis()