def test_executor_init_with_password(request): """Test whether the executor initializes properly.""" config = get_config(request) executor = PostgreSQLExecutor( executable=config['exec'], host=config['host'], port=get_port(config['port']), datadir='/tmp/error', unixsocketdir=config['unixsocketdir'], logfile='/tmp/version.error.log', startparams=config['startparams'], password="******", ) with executor: assert executor.running() psycopg2.connect(dbname=executor.user, user=executor.user, password=executor.password, host=executor.host, port=executor.port) with pytest.raises(psycopg2.OperationalError): psycopg2.connect(dbname=executor.user, user=executor.user, password='******', host=executor.host, port=executor.port) assert not executor.running()
def postgresql_factory(request: FixtureRequest): """Fixture factory for PostgreSQL. :param FixtureRequest request: fixture request object :rtype: psycopg2.connection :returns: postgresql client """ config = factories.get_config(request) proc_fixture = request.getfixturevalue(process_fixture_name) pg_host = proc_fixture.host pg_port = proc_fixture.port pg_user = proc_fixture.user pg_options = proc_fixture.options pg_db = db_name or config["dbname"] with SWHDatabaseJanitor( pg_user, pg_host, pg_port, pg_db, proc_fixture.version, dump_files=dump_files, no_truncate_tables=no_truncate_tables, ): connection = psycopg2.connect( dbname=pg_db, user=pg_user, host=pg_host, port=pg_port, options=pg_options, ) yield connection connection.close()
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 test_unsupported_version(request): """Check that the error gets raised on unsupported postgres version.""" config = get_config(request) executor = PatchedPostgreSQLExecutor( executable=config['exec'], host=config['host'], port=get_port(config['port']), datadir='/tmp/error', unixsocketdir=config['unixsocketdir'], logfile='/tmp/version.error.log', startparams=config['startparams'], ) with pytest.raises(PostgreSQLUnsupported): executor.start()
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)