import logging import pytest from apollo_main_db.base import Base from retrieve_and_save_mobile_versions.main_db import engine, session_scope from retrieve_and_save_mobile_versions.config import Config from retrieve_and_save_mobile_versions.redis_db import init_redis from tests import factories def register_factories(session): """Pass session to factory model""" for factory in ( factories.MobileVersionFactory, ): factory._meta.sqlalchemy_session = session @pytest.yield_fixture def db_session(): """Returns an sqlalchemy session, and after the test tears down.""" Base.metadata.create_all(engine) with session_scope() as session: register_factories(session) yield session Base.metadata.drop_all(engine) @pytest.fixture def redis_client(): """Redis client""" _config = Config() logger = logging.Logger("test") return init_redis(_config.REDIS_HOST, _config.REDIS_PORT, logger) @pytest.fixture(autouse=True) def redis_flush(redis_client): """Flush all before each test""" redis_client.flushall()