def test_config(self): # set global if it wasn't set configure_testgres(cache_initdb=True, cache_pg_config=True) # check same instances a = get_pg_config() b = get_pg_config() self.assertEqual(id(a), id(b)) # modify setting configure_testgres(cache_pg_config=False) self.assertFalse(TestgresConfig.cache_pg_config) # check different instances a = get_pg_config() b = get_pg_config() self.assertNotEqual(id(a), id(b)) # restore setting configure_testgres(cache_pg_config=True)
def test_pg_config(self): # check same instances a = get_pg_config() b = get_pg_config() self.assertEqual(id(a), id(b)) # save right before config change c1 = get_pg_config() # modify setting for this scope with scoped_config(cache_pg_config=False) as config: # sanity check for value self.assertFalse(config.cache_pg_config) # save right after config change c2 = get_pg_config() # check different instances after config change self.assertNotEqual(id(c1), id(c2)) # check different instances a = get_pg_config() b = get_pg_config() self.assertNotEqual(id(a), id(b))
def get_version(self, node): return self.version_to_num( testgres.get_pg_config()['VERSION'].split(" ")[1])
def __init__(self, *args, **kwargs): super(ProbackupTest, self).__init__(*args, **kwargs) if '-v' in argv or '--verbose' in argv: self.verbose = True else: self.verbose = False self.test_env = os.environ.copy() envs_list = [ 'LANGUAGE', 'LC_ALL', 'PGCONNECT_TIMEOUT', 'PGDATA', 'PGDATABASE', 'PGHOSTADDR', 'PGREQUIRESSL', 'PGSERVICE', 'PGSSLMODE', 'PGUSER', 'PGPORT', 'PGHOST' ] for e in envs_list: try: del self.test_env[e] except: pass self.test_env['LC_MESSAGES'] = 'C' self.test_env['LC_TIME'] = 'C' self.paranoia = False if 'PG_PROBACKUP_PARANOIA' in self.test_env: if self.test_env['PG_PROBACKUP_PARANOIA'] == 'ON': self.paranoia = True self.archive_compress = False if 'ARCHIVE_COMPRESSION' in self.test_env: if self.test_env['ARCHIVE_COMPRESSION'] == 'ON': self.archive_compress = True try: testgres.configure_testgres(cache_initdb=False, cached_initdb_dir=False, cache_pg_config=False, node_cleanup_full=False) except: pass self.helpers_path = os.path.dirname(os.path.realpath(__file__)) self.dir_path = os.path.abspath( os.path.join(self.helpers_path, os.pardir)) self.tmp_path = os.path.abspath(os.path.join(self.dir_path, 'tmp_dirs')) try: os.makedirs(os.path.join(self.dir_path, 'tmp_dirs')) except: pass self.user = self.get_username() self.probackup_path = None if 'PGPROBACKUPBIN' in self.test_env: if (os.path.isfile(self.test_env["PGPROBACKUPBIN"]) and os.access(self.test_env["PGPROBACKUPBIN"], os.X_OK)): self.probackup_path = self.test_env["PGPROBACKUPBIN"] else: if self.verbose: print('PGPROBACKUPBIN is not an executable file') if not self.probackup_path: probackup_path_tmp = os.path.join( testgres.get_pg_config()['BINDIR'], 'pg_probackup') if os.path.isfile(probackup_path_tmp): if not os.access(probackup_path_tmp, os.X_OK): print('{0} is not an executable file'.format( probackup_path_tmp)) else: self.probackup_path = probackup_path_tmp if not self.probackup_path: probackup_path_tmp = os.path.abspath( os.path.join(self.dir_path, '../pg_probackup')) if os.path.isfile(probackup_path_tmp): if not os.access(probackup_path_tmp, os.X_OK): print('{0} is not an executable file'.format( probackup_path_tmp)) else: self.probackup_path = probackup_path_tmp if not self.probackup_path: print('pg_probackup binary is not found') exit(1) if os.name == 'posix': os.environ['PATH'] = os.path.dirname( self.probackup_path) + ':' + os.environ['PATH'] elif os.name == 'nt': os.environ['PATH'] = os.path.dirname( self.probackup_path) + ';' + os.environ['PATH'] self.probackup_old_path = None if 'PGPROBACKUPBIN_OLD' in self.test_env: if (os.path.isfile(self.test_env['PGPROBACKUPBIN_OLD']) and os.access(self.test_env['PGPROBACKUPBIN_OLD'], os.X_OK)): self.probackup_old_path = self.test_env['PGPROBACKUPBIN_OLD'] else: if self.verbose: print('PGPROBACKUPBIN_OLD is not an executable file')