Esempio n. 1
0
    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')
Esempio n. 2
0
    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')
Esempio n. 3
0
    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 {}))
Esempio n. 4
0
    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 {}))
Esempio n. 5
0
 def _steps(self, namespace, names):
     return [Extensions.get(namespace, name)(self) for name in names]
Esempio n. 6
0
 def get_class(self):
     return Extensions.get('share.transformers', self.key)
Esempio n. 7
0
 def get_class(self):
     return Extensions.get('share.harvesters', self.key)
Esempio n. 8
0
def test_step_bases(namespace, base_class):
    assert all(issubclass(e.plugin, base_class) for e in Extensions._load_namespace(namespace))
Esempio n. 9
0
 def get_class(self):
     return Extensions.get('share.transformers', self.key)
Esempio n. 10
0
 def get_class(self):
     return Extensions.get('share.harvesters', self.key)
Esempio n. 11
0
def test_step_bases(namespace, base_class):
    assert all(issubclass(e.plugin, base_class) for e in Extensions._load_namespace(namespace))