def setUp(self): self.temp_dir = tempfile.mkdtemp() self.postgressql_conf = self.temp_dir + "/postgresql.conf" with open(self.postgressql_conf, "w") as postgresql: postgresql.close() # because gpconfig does not have a .py extension, # we have to use imp to import it # if we had a gpconfig.py, this is equivalent to: # import gpconfig # self.subject = gpconfig gpconfig_file = os.path.abspath( os.path.dirname(__file__) + "/../../../gpconfig") self.subject = imp.load_source('gpconfig', gpconfig_file) self.subject.logger = Mock( spec=['log', 'warn', 'info', 'debug', 'error', 'warning', 'fatal']) self.conn = Mock() self.rows = [] self.conn.execSql.return_value = self.rows self.os_env = dict(USER="******") self.os_env["MASTER_DATA_DIRECTORY"] = self.temp_dir self.gparray = self.createGpArrayWith2Primary2Mirrors() self.host_cache = Mock() self.host = GpHost('localhost') seg = Segment() db = self.gparray.master seg.addPrimary(db) self.host.addDB(seg) self.host_cache.get_hosts.return_value = [self.host] self.host_cache.ping_hosts.return_value = [] self.master_read_config = Mock() self.master_read_config.get_guc_value.return_value = "foo" self.master_read_config.get_seg_id.return_value = -1 self.segment_read_config = Mock() self.segment_read_config.get_guc_value.return_value = "foo" self.segment_read_config.get_seg_id.return_value = 0 self.pool = Mock() self.pool.getCompletedItems.return_value = [ self.master_read_config, self.segment_read_config ] self.apply_patches([ patch('os.environ', new=self.os_env), patch('gpconfig.dbconn.connect', return_value=self.conn), patch('gpconfig.dbconn.execSQL', return_value=self.rows), patch('gpconfig.GpHostCache', return_value=self.host_cache), patch('gpconfig.GpArray.initFromCatalog', return_value=self.gparray), patch('gpconfig.GpReadConfig', return_value=self.master_read_config), patch('gpconfig.WorkerPool', return_value=self.pool) ]) sys.argv = ["gpconfig"] # reset to relatively empty args list
def setUp(self): self.temp_dir = tempfile.mkdtemp() self.postgressql_conf = self.temp_dir + "/postgresql.conf" with open(self.postgressql_conf, "w") as postgresql: postgresql.close() # because gpconfig does not have a .py extension, # we have to use imp to import it # if we had a gpconfig.py, this is equivalent to: # import gpconfig # self.subject = gpconfig gpconfig_file = os.path.abspath(os.path.dirname(__file__) + "/../../../gpconfig") self.subject = imp.load_source('gpconfig', gpconfig_file) self.subject.LOGGER = Mock(spec=['log', 'warn', 'info', 'debug', 'error', 'warning', 'fatal']) self.conn = Mock() self.cursor = FakeCursor() self.os_env = dict(USER="******") self.os_env["MASTER_DATA_DIRECTORY"] = self.temp_dir self.os_env["GPHOME"] = self.temp_dir self.gparray = self._create_gparray_with_2_primary_2_mirrors() self.host_cache = Mock() self.host = GpHost('localhost') seg = Segment() db = self.gparray.master seg.addPrimary(db) seg.datadir = self.gparray.master.datadir seg.hostname = 'localhost' self.host.addDB(seg) self.host_cache.get_hosts.return_value = [self.host] self.host_cache.ping_hosts.return_value = [] self.master_read_config = Mock() self.master_read_config.get_guc_value.return_value = "foo" self.master_read_config.get_seg_content_id.return_value = -1 self.segment_read_config = Mock() self.segment_read_config.get_guc_value.return_value = "foo" self.segment_read_config.get_seg_content_id.return_value = 0 self.pool = Mock() self.pool.getCompletedItems.return_value = [self.master_read_config, self.segment_read_config] self.apply_patches([ patch('os.environ', new=self.os_env), patch('gpconfig.dbconn.connect', return_value=self.conn), patch('gpconfig.dbconn.execSQL', return_value=self.cursor), patch('gpconfig.dbconn.execSQLForSingleton', side_effect=singleton_side_effect), patch('gpconfig.GpHostCache', return_value=self.host_cache), patch('gpconfig.GpArray.initFromCatalog', return_value=self.gparray), patch('gpconfig.GpReadConfig', return_value=self.master_read_config), patch('gpconfig.WorkerPool', return_value=self.pool) ]) sys.argv = ["gpconfig"] # reset to relatively empty args list shared_dir = os.path.join(self.temp_dir, ParseGuc.DESTINATION_DIR) _mkdir_p(shared_dir, 0755) self.guc_disallowed_readonly_file = os.path.abspath(os.path.join(shared_dir, ParseGuc.DESTINATION_FILENAME)) with open(self.guc_disallowed_readonly_file, 'w') as f: f.writelines("x\ny\n")