def get_options(self, configuration, **kwargs): """ Populate self.options based on contents of ConfigParser object, warns if unknown options are found arguments: configuration - a ConfigParser object keyword arguments: ignore_options - a list of option names that should be ignored when checking for unknown options """ self.check_config(configuration) for option in self.options.values(): self.log("Getting value for %s" % option.name) try: configfile.get_option(configuration, self.config_section, option) self.log("Got %s" % option.value) except configparser.Error as err: self.log("Syntax error in configuration: %s" % err, option=option.name, section=self.config_section, level=logging.ERROR, exception=False) raise exceptions.SettingError(str(err)) except Exception: self.log("Received exception when parsing option", option=option.name, section=self.config_section, level=logging.ERROR, exception=False) raise # check and warn if unknown options found known_options = list(self.options.keys()) known_options.extend(kwargs.get('ignore_options', [])) temp = utilities.get_set_membership( configuration.options(self.config_section), known_options, configuration.defaults().keys()) for option in temp: self.log("Found unknown option", option=option, section=self.config_section, level=logging.WARNING)
def get_options(self, configuration, **kwargs): """ Populate self.options based on contents of ConfigParser object, warns if unknown options are found arguments: configuration - a ConfigParser object keyword arguments: ignore_options - a list of option names that should be ignored when checking for unknown options """ self.check_config(configuration) for option in self.options.values(): self.log("Getting value for %s" % option.name) try: configfile.get_option(configuration, self.config_section, option) self.log("Got %s" % option.value) except Exception: self.log("Received exception when parsing option", option=option.name, section=self.config_section, level=logging.ERROR, exception=False) raise # check and warn if unknown options found known_options = self.options.keys() known_options.extend(kwargs.get('ignore_options', [])) temp = utilities.get_set_membership(configuration.options(self.config_section), known_options, configuration.defaults().keys()) for option in temp: self.log("Found unknown option", option=option, section=self.config_section, level=logging.WARNING)
def test_get_set_membership(self): """ Test get_set_membership functionality """ test_set1 = [1, 2, 3, 4, 5, 6, 7] reference_set1 = [1, 2, 3, 4, 5] default_set1 = [5, 6, 7] self.assertEqual(utilities.get_set_membership(test_set1, reference_set1), [6, 7], 'Did not get [6, 7] as missing set members') self.assertEqual(utilities.get_set_membership(test_set1, reference_set1, default_set1), [], 'Did not get [] as missing set members') self.assertEqual(utilities.get_set_membership(reference_set1, reference_set1), [], 'Did not get [] as missing set members') test_set2 = ['a', 'b', 'c', 'd', 'e'] reference_set2 = ['a', 'b', 'c'] default_set2 = ['d', 'e'] self.assertEqual(utilities.get_set_membership(test_set2, reference_set2), ['d', 'e'], 'Did not get [d, e] as missing set members') self.assertEqual(utilities.get_set_membership(test_set2, reference_set2, default_set2), [], 'Did not get [] as missing set members') self.assertEqual(utilities.get_set_membership(reference_set2, reference_set2), [], 'Did not get [] as missing set members')
def test_get_set_membership(self): """ Test get_set_membership functionality """ test_set1 = [1, 2, 3, 4, 5, 6, 7] reference_set1 = [1, 2, 3, 4, 5] default_set1 = [5, 6, 7] self.assertEqual(utilities.get_set_membership(test_set1, reference_set1), [6, 7], 'Did not get [6, 7] as missing set members') self.assertEqual(utilities.get_set_membership(test_set1, reference_set1, default_set1), [], 'Did not get [] as missing set members') self.assertEqual(utilities.get_set_membership(reference_set1, reference_set1), [], 'Did not get [] as missing set members') test_set2 = ['a', 'b', 'c', 'd', 'e'] reference_set2 = ['a', 'b', 'c'] default_set2 = ['d', 'e'] self.assertEqual(utilities.get_set_membership(test_set2, reference_set2), ['d', 'e'], 'Did not get [d, e] as missing set members') self.assertEqual(utilities.get_set_membership(test_set2, reference_set2, default_set2), [], 'Did not get [] as missing set members') self.assertEqual(utilities.get_set_membership(reference_set2, reference_set2), [], 'Did not get [] as missing set members')