def make_transformer(self, create, extracted, **kwargs): stevedore.ExtensionManager('share.transformers') # Force extensions to load class MockTransformer(BaseTransformer): KEY = self.key VERSION = 1 def do_transform(self, data, **kwargs): return json.loads(data), None mock_entry = mock.create_autospec(pkg_resources.EntryPoint, instance=True) mock_entry.name = self.key mock_entry.module_name = self.key mock_entry.resolve.return_value = MockTransformer stevedore.ExtensionManager.ENTRY_POINT_CACHE['share.transformers'].append(mock_entry) Extensions._load_namespace('share.transformers')
def make_harvester(self, create, extracted, **kwargs): stevedore.ExtensionManager('share.harvesters') # Force extensions to load class MockHarvester(BaseHarvester): KEY = self.key VERSION = 1 SERIALIZER_CLASS = StringLikeSerializer _do_fetch = ListGenerator() mock_entry = mock.create_autospec(pkg_resources.EntryPoint, instance=True) mock_entry.name = self.key mock_entry.module_name = self.key mock_entry.resolve.return_value = MockHarvester stevedore.ExtensionManager.ENTRY_POINT_CACHE['share.harvesters'].append(mock_entry) Extensions._load_namespace('share.harvesters')
def _get_step(self, namespace, name, settings=None): """Instantiate and return a regulator step for the given config. Params: namespace: Name of the step's entry point group in setup.py name: Name of the step's entry point in setup.py [settings]: Optional dictionary, passed as keyword arguments when initializing the step """ return Extensions.get(namespace, name)(**(settings or {}))
def _load_step(self, namespace, name, settings=None): """Instantiate and return a regulator step for the given config. Params: namespace: Name of the step's entry point group in setup.py name: Name of the step's entry point in setup.py [settings]: Optional dictionary, passed as keyword arguments when initializing the step """ return Extensions.get(namespace, name)(**(settings or {}))
def _steps(self, namespace, names): return [Extensions.get(namespace, name)(self) for name in names]
def get_class(self): return Extensions.get('share.transformers', self.key)
def get_class(self): return Extensions.get('share.harvesters', self.key)
def test_step_bases(namespace, base_class): assert all(issubclass(e.plugin, base_class) for e in Extensions._load_namespace(namespace))