def session(db, engine, request): """Creates a new temporal session for a test.""" connection = engine.connect() transaction = connection.begin() session_factory = sessionmaker(bind=connection) session = orm.scoped_session(session_factory) def teardown(): transaction.rollback() connection.close() session.remove() request.addfinalizer(teardown) return session
conf = Loader().load() db_host = conf["database"]["host"] db_name = conf["app"]["name"] #db_name = domain.get_db_name() log.info(db_name) db_user = conf["database"]["user"] db_password = conf["database"]["password"] conn_string = f'postgresql+psycopg2://{db_user}:{db_password}@{db_host}:5432/{db_name}' engine = create_engine(conn_string, convert_unicode=True, isolation_level="READ_UNCOMMITTED", pool_size=20, max_overflow=0) session_factory = sessionmaker(bind=engine) db_session = scoped_session(session_factory) def create_db(): from model import domain if not database_exists(engine.url): create_database(engine.url) Base.metadata.create_all(bind=engine) def create_session(): return scoped_session(session_factory)()
def test_session_factory(connection, transaction): """Creates a new temporal session for a test.""" session_factory = sessionmaker(bind=connection) session = orm.scoped_session(session_factory) return session