コード例 #1
0
def inject_plugin_into_working_set(plugin_id, plugin):
    class FakeEntryPoint(EntryPoint):
        def load(self, *args, **kwargs):
            return plugin

    entry_point = FakeEntryPoint.parse(plugin_id +
                                       ' = dummy_module:DummyPlugin')
    dist = Distribution(version='1.0')
    dist._ep_map = {'mailqueue.plugins': {plugin_id: entry_point}}
    entry_point.dist = dist
    working_set = app_helpers._working_set
    working_set.add(dist, plugin_id)
    return working_set
コード例 #2
0
def test_loading_external_storage_implementation():
    try:
        distribution = Distribution(os.path.join(
                os.path.dirname(__file__), "fixtures"))
        entry_point = EntryPoint.parse(
            'scheduling = fake_storage:MySchedulingStorage', dist=distribution)
        distribution._ep_map = {
            'chaosplatform.storage': {'scheduling': entry_point}}
        working_set.add(distribution)

        storage = initialize_storage(config={"db":{"uri": "sqlite:///"}})
        assert storage.__class__.__name__ == "MySchedulingStorage"
        assert storage.some_flag == True

        shutdown_storage(storage)
        assert storage.some_flag == False

    finally:
        distribution._ep_map.clear()