def test_configuration_files(self): configurable = Configurable() configurable.conf_paths = self.conf_paths self.assertEqual( configurable.conf_paths, self.conf_paths) configurable = Configurable( conf_paths=self.conf_paths) self.assertEqual( configurable.conf_paths, self.conf_paths)
def test_configuration(self): # test to get from no file configurable = Configurable() conf = configurable.get_configuration() self.assertEqual(len(conf), len(self.conf)) # test to get from files which do not exist configurable.conf_paths = self.conf_paths for conf_path in self.conf_paths: try: remove(conf_path) except OSError: pass conf = configurable.get_configuration() self.assertEqual(len(conf), len(self.conf)) # get parameters from empty files for conf_path in self.conf_paths: with open(conf_path, 'w') as _file: _file.write('\n') conf = configurable.get_configuration() self.assertEqual(len(conf), len(self.conf)) # get parameters from empty files and empty parsing_rules conf = Configuration() configurable.get_configuration(conf=conf) self.assertEqual(len(conf), 0) # fill files configurable = Configurable( conf_paths=self.conf_paths) # add first category in conf file[0] configurable.set_configuration( conf_path=self.conf_paths[0], conf=Configuration(self.conf['A']), driver=configurable._drivers.split(',')[0]) # add second category in conf file[1] configurable.set_configuration( conf_path=self.conf_paths[1], conf=Configuration(self.conf['B']), driver=configurable._drivers.split(',')[1]) conf = configurable.get_configuration(conf=self.conf) unified_configuration = conf.unify() parameters = unified_configuration[Configuration.VALUES] errors = unified_configuration[Configuration.ERRORS] self.assertTrue('a' in parameters and 'a' not in errors) self.assertEqual(parameters['a'].value, 'b') self.assertTrue('2' in parameters and '2' not in errors) self.assertEqual(parameters['2'].value, 2) self.assertTrue('b' in parameters and 'b' not in errors) self.assertEqual(parameters['b'].value, 'b') self.assertTrue('error' in errors and 'error' not in parameters)