Beispiel #1
0
def read_stream_configs(file_path: str) -> Dict[str, data_stream.DataStream]:
    configs = load_configs(file_path)
    streams: Dict[str, data_stream.DataStream] = {}
    for file_path, data in configs.items():
        try:
            s = data_stream.from_config(data)
            # convert to an API object
            api_s = api_stream.from_json(s.to_json())
            stream_path = _create_path(data)

            streams[stream_path] = api_s
        except KeyError as e:
            raise ConfigurationError("Invalid stream [%s]: [Main] missing %s" %
                                     (file_path, e.args[0]))
    return streams
Beispiel #2
0
 def evaluate_good_values(self, setting_name, settings, section="Main"):
     for setting in settings:
         with self.subTest(setting=setting):
             self.base_config[section][setting_name] = setting
             data_stream.from_config(self.base_config)
Beispiel #3
0
 def evaluate_bad_values(self, setting_name, bad_settings, section="Main"):
     for setting in bad_settings:
         with self.subTest(setting=setting):
             self.base_config[section][setting_name] = setting
             with self.assertRaisesRegex(ConfigurationError, setting_name):
                 data_stream.from_config(self.base_config)
Beispiel #4
0
 def test_errors_on_invalid_elements(self, from_config: mock.Mock):
     from_config.side_effect = ConfigurationError()
     with self.assertRaisesRegex(ConfigurationError, 'element'):
         data_stream.from_config(self.base_config)
Beispiel #5
0
 def test_errors_on_missing_elements_sections(self):
     """Must have at least one element"""
     self.base_config.remove_section("Element1")
     with self.assertRaises(ConfigurationError):
         data_stream.from_config(self.base_config)
Beispiel #6
0
 def test_errors_on_missing_info(self):
     self.base_config.remove_option("Main", "name")
     with self.assertRaisesRegex(ConfigurationError, 'name'):
         data_stream.from_config(self.base_config)
Beispiel #7
0
 def test_errors_on_missing_main(self):
     self.base_config.remove_section("Main")
     with self.assertRaisesRegex(ConfigurationError, 'Main'):
         data_stream.from_config(self.base_config)