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)
Example #3
0
    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')
Example #4
0
    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')