def _get_action_instance(self): actions_cls = action_loader.register_plugin(Action, self._file_path) action_cls = actions_cls[0] if actions_cls and len( actions_cls) > 0 else None if not action_cls: raise Exception( 'File "%s" has no action or the file doesn\'t exist.' % (self._file_path)) config_loader = ContentPackConfigLoader(pack_name=self._pack, user=self._user) config = config_loader.get_config() if config: LOG.info('Found config for action "%s"' % (self._file_path)) else: LOG.info('No config found for action "%s"' % (self._file_path)) config = None action_service = ActionService(action_wrapper=self) action_instance = get_action_class_instance( action_cls=action_cls, config=config, action_service=action_service) return action_instance
def test_action_class_instantiation_action_service_argument(self): class Action1(Action): # Constructor not overriden so no issue here pass def run(self): pass class Action2(Action): # Constructor overriden, but takes action_service argument def __init__(self, config, action_service=None): super(Action2, self).__init__(config=config, action_service=action_service) def run(self): pass class Action3(Action): # Constructor overriden, but doesn't take to action service def __init__(self, config): super(Action3, self).__init__(config=config) def run(self): pass config = {'a': 1, 'b': 2} action_service = 'ActionService!' action1 = get_action_class_instance(action_cls=Action1, config=config, action_service=action_service) self.assertEqual(action1.config, config) self.assertEqual(action1.action_service, action_service) action2 = get_action_class_instance(action_cls=Action2, config=config, action_service=action_service) self.assertEqual(action2.config, config) self.assertEqual(action2.action_service, action_service) action3 = get_action_class_instance(action_cls=Action3, config=config, action_service=action_service) self.assertEqual(action3.config, config) self.assertEqual(action3.action_service, action_service)
def get_action_instance(self, config=None): """ Retrieve instance of the action class. """ # pylint: disable=not-callable instance = get_action_class_instance(action_cls=self.action_cls, config=config, action_service=self.action_service) return instance
def get_action_instance(self, config=None): """ Retrieve instance of the action class. """ # pylint: disable=not-callable instance = get_action_class_instance( action_cls=self.action_cls, config=config, action_service=self.action_service) return instance
def _get_action_instance(self): actions_cls = action_loader.register_plugin(Action, self._file_path) action_cls = actions_cls[0] if actions_cls and len(actions_cls) > 0 else None if not action_cls: raise Exception('File "%s" has no action or the file doesn\'t exist.' % (self._file_path)) config_loader = ContentPackConfigLoader(pack_name=self._pack, user=self._user) config = config_loader.get_config() if config: LOG.info('Found config for action "%s"' % (self._file_path)) else: LOG.info('No config found for action "%s"' % (self._file_path)) config = None action_service = ActionService(action_wrapper=self) action_instance = get_action_class_instance(action_cls=action_cls, config=config, action_service=action_service) return action_instance