def testLoadMultiplePluginsWithFailure(registry, logprint):
    plugin._loadPlugins(['plugin1', 'plugin2'], {})

    logprint.exception.assert_has_calls(
        [mock.call('Failed to load plugin plugin1')])
    assert 'plugin1' in plugin.getPluginFailureInfo()
    assert plugin.loadedPlugins() == ['plugin2']
def testLoadMultiplePluginsWithFailure(registry, logprint):
    plugin._loadPlugins(['plugin1', 'plugin2'], {})

    logprint.exception.assert_has_calls([
        mock.call('Failed to load plugin plugin1')
    ])
    assert 'plugin1' in plugin.getPluginFailureInfo()
    assert plugin.loadedPlugins() == ['plugin2']
def testLoadPluginWithError(registry, logprint):
    with pytest.raises(Exception) as exception1:
        plugin.getPlugin('throws').load({})

    logprint.exception.assert_called_once_with('Failed to load plugin throws')
    assert 'throws' in plugin.getPluginFailureInfo()

    with pytest.raises(Exception) as exception2:
        plugin.getPlugin('throws').load({})

    assert exception1.value is not exception2.value
def testLoadPluginWithError(registry, logprint):
    with pytest.raises(Exception) as exception1:
        plugin.getPlugin('throws').load({})

    logprint.exception.assert_called_once_with('Failed to load plugin throws')
    assert 'throws' in plugin.getPluginFailureInfo()

    with pytest.raises(Exception) as exception2:
        plugin.getPlugin('throws').load({})

    assert exception1.value is not exception2.value
Exemple #5
0
    def getPlugins(self):
        def _pluginNameToResponse(name):
            p = plugin.getPlugin(name)
            return {
                'name': p.displayName,
                'description': p.description,
                'url': p.url,
                'version': p.version
            }

        plugins = {
            'all': {name: _pluginNameToResponse(name) for name in plugin.allPlugins()},
            'enabled': Setting().get(SettingKey.PLUGINS_ENABLED),
            'loaded': plugin.loadedPlugins()
        }
        failureInfo = {
            plugin: ''.join(traceback.format_exception(*exc_info))
            for plugin, exc_info in six.iteritems(plugin.getPluginFailureInfo())
        }

        if failureInfo:
            plugins['failed'] = failureInfo
        return plugins
Exemple #6
0
    def getPlugins(self):
        def _pluginNameToResponse(name):
            p = plugin.getPlugin(name)
            return {
                'name': p.displayName,
                'description': p.description,
                'url': p.url,
                'version': p.version
            }

        plugins = {
            'all': {name: _pluginNameToResponse(name) for name in plugin.allPlugins()},
            'enabled': Setting().get(SettingKey.PLUGINS_ENABLED),
            'loaded': plugin.loadedPlugins()
        }
        failureInfo = {
            plugin: ''.join(traceback.format_exception(*exc_info))
            for plugin, exc_info in six.iteritems(plugin.getPluginFailureInfo())
        }

        if failureInfo:
            plugins['failed'] = failureInfo
        return plugins