def apply_database_plumbing(request, postgresql_proc): """Bolt pytest-dbfixtures onto Django to work around its lack of no-setup testing facilities.""" config = get_config(request) config['db'] = 'tests' settings.DATABASES['default'].update({ 'NAME': config['db'], 'USER': config['user'], 'HOST': postgresql_proc.host, 'PORT': postgresql_proc.port, }) init_postgresql_database(config['user'], postgresql_proc.host, postgresql_proc.port, config['db'])
def pg_connection(request, postgresql_proc): config = get_config(request) pg_user = config['user'] pg_host = postgresql_proc.host pg_port = postgresql_proc.port pg_db = config['db'] = 'tests' init_postgresql_database(pg_user, pg_host, pg_port, pg_db) apply_migrations(pg_user, pg_host, pg_port, pg_db) conn = psycopg2.connect(dbname=pg_db, user=pg_user, host=pg_host, port=pg_port) return conn
def database(request): pg_host = DB_OPTS.get("host") pg_port = DB_OPTS.get("port") pg_user = DB_OPTS.get("user") pg_db = DB_OPTS.get("name", "tests") # 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, 9.6)
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 database(request): ''' Create a Postgres database for the tests, and drop it when the tests are done. ''' pg_host = DB_OPTS.get("host") pg_port = DB_OPTS.get("port") pg_user = DB_OPTS.get("username") pg_db = DB_OPTS["database"] init_postgresql_database(pg_user, pg_host, pg_port, pg_db) @request.addfinalizer def drop_database(): drop_postgresql_database(pg_user, pg_host, pg_port, pg_db, 9.6)
def database(request): 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") pg_version = config.get("version", 9.6) # 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 database(request): 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") pg_version = config.get("version", 9.6) # 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 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 database(request): pg_host = DB_OPTS.get("host") pg_port = DB_OPTS.get("port") pg_user = DB_OPTS.get("user") pg_db = DB_OPTS.get("name", "tests") if 'test' not in pg_db: pg_db = '{}_test'.format(pg_db) # Create our Database. try: init_postgresql_database(pg_user, pg_host, pg_port, pg_db) except psycopg2.ProgrammingError as e: if 'permission denied' in str(e): pg_user = '******' init_postgresql_database(pg_user, pg_host, pg_port, pg_db) else: raise e # Ensure our database gets deleted. @request.addfinalizer def drop_database(): drop_postgresql_database(pg_user, pg_host, pg_port, pg_db, 9.6)