def _load(plugin): """ Import a module by file name. :param plugin: A plugin to load. :type plugin: Plugin :return: The loaded plugin. :rtype: Plugin """ Remote.clear() Actions.clear() Plugin.add(plugin) try: path = plugin.descriptor.main.plugin if path: Plugin.add(plugin, path) plugin.impl = __import__(path, {}, {}, [path.split('.')[-1]]) else: path = PluginLoader._find(plugin.name) plugin.impl = imp.load_source(plugin.name, path) log.info('plugin:%s loaded using: %s', plugin.name, path) for fn in Remote.find(plugin.impl.__name__): fn.gofer.plugin = plugin plugin.dispatcher += Remote.collated() plugin.actions = Actions.collated() plugin.delegate = Delegate() plugin.load() return plugin except Exception: log.exception('plugin:%s, import failed', plugin.name) Plugin.delete(plugin)
def test_clear(self): functions = {} fn = '<function>' interval = '<interval>' with patch('gofer.agent.decorator.Actions.functions', functions): Actions.add(fn, interval) self.assertEqual(Actions.functions, {fn: interval}) Actions.clear() self.assertEqual(Actions.functions, {})
def test_clear(self): functions = {} fn = "<function>" interval = "<interval>" with patch("gofer.agent.decorator.Actions.functions", functions): Actions.add(fn, interval) self.assertEqual(Actions.functions, {fn: interval}) Actions.clear() self.assertEqual(Actions.functions, {})