def session(postgresql_proc): db_name = 'unittests' port = postgresql_proc.port user = postgresql_proc.user socketdir = postgresql_proc.unixsocketdir pg_factory.init_postgresql_database(user, socketdir, port, db_name) db_url = (f'postgresql:///{db_name}?' f'user={user}&host={socketdir}&port={port}') database.init(db_url) database.migrate() yield database.session pg_factory.drop_postgresql_database(user, socketdir, port, db_name, postgresql_proc.version)
def config_database(request): connection_string = 'postgresql+psycopg2://{0}@{1}:{2}/{3}' config = get_config(request) pg_host = config.get('host') pg_port = config.get('port') or 5432 pg_user = config.get('user') pg_db = config.get('db', 'tests') # Create the database init_postgresql_database(pg_user, pg_host, pg_port, pg_db) yield connection_string.format(pg_user, pg_host, pg_port, pg_db) # Ensure the database gets deleted drop_postgresql_database( pg_user, pg_host, pg_port, pg_db, '9.4' )
def database(request): config = get_config(request) pg_host = config.get("host") pg_port = config.get("port") or os.environ.get("PGPORT", 5432) pg_user = config.get("user") pg_db = config.get("db", "tests") pg_version = config.get("version", 10.1) # In case the database already exists, possibly due to an aborted test run, # attempt to drop it before creating drop_postgresql_database(pg_user, pg_host, pg_port, pg_db, pg_version) # Create our Database. init_postgresql_database(pg_user, pg_host, pg_port, pg_db) # Ensure our database gets deleted. @request.addfinalizer def drop_database(): drop_postgresql_database(pg_user, pg_host, pg_port, pg_db, pg_version) return "postgresql://{}@{}:{}/{}".format(pg_user, pg_host, pg_port, pg_db)
def drop_database(): drop_postgresql_database(pg_user, pg_host, pg_port, pg_db, pg_version)
def drop_database(): drop_postgresql_database(pg_user, pg_host, pg_port, pg_db, 9.6, pg_pass)