Пример #1
0
def _generate_schemas(app_config: AppConfig, event_name: str) -> dict:
    """
    Generate all schemas for a given event, based on steps signatures
    """
    module = find_event_handler(app_config=app_config, event_name=event_name)
    steps = extract_module_steps(module)
    schemas: dict = {}
    for _, step_info in steps:
        _update_step_schemas(schemas, step_info)
    step_info = extract_postprocess_handler(module)
    _update_step_schemas(schemas, step_info)
    step_info = extract_preprocess_handler(module)
    _update_step_schemas(schemas, step_info)
    return schemas
Пример #2
0
 def load_modules(self, effective_events: Dict[str, EventDescriptor]):
     for event_name, event_info in effective_events.items():
         base_event, _ = event_and_step(event_name)
         module = find_event_handler(app_config=self.app_config,
                                     event_name=base_event)
         steps = extract_module_steps(module)
         self.modules[base_event] = (module, False, steps)
         self.preprocess_handlers[base_event] = extract_preprocess_handler(
             module)
         self.postprocess_handlers[
             base_event] = extract_postprocess_handler(module)
         setup_app_logger(module,
                          app_config=self.app_config,
                          name=base_event,
                          event_info=event_info)
         self.steps[event_name] = effective_steps(event_name, steps)
Пример #3
0
 def load_modules(self, effective_events: Dict[str, EventDescriptor]):
     """
     Load and setup event implementation modules. Set logger and load settings.
     """
     for event_name, event_info in effective_events.items():
         base_event, _ = event_and_step(event_name)
         module = find_event_handler(app_config=self.app_config,
                                     event_name=base_event,
                                     event_info=event_info)
         steps = extract_module_steps(module)
         self.modules[base_event] = (module, False, steps)
         self.preprocess_handlers[base_event] = extract_preprocess_handler(
             module)
         self.postprocess_handlers[
             base_event] = extract_postprocess_handler(module)
         event_settings = get_event_settings(self.settings, event_name)
         setup_app_logger(module,
                          app_config=self.app_config,
                          name=base_event,
                          event_settings=event_settings)
         self.steps[event_name] = effective_steps(event_name, steps)
Пример #4
0
def test_extract_postprocess_handler():
    impl = importlib.import_module('mock_app.mock_event')
    f1 = getattr(impl, '__postprocess__')
    pp_handler = extract_postprocess_handler(impl)
    assert pp_handler == (f1, str, str, False)