def test_ignorable_classes(self): self._create('foo.py', 'class Foo(object): pass') sut = PluginLoader() sut.load_directory(self.plugin_dir, onlyif=lambda x, y: False) self.assertEqual({}, sut.plugins)
def test_containing_directories(self): self._create_dir('foo') sut = PluginLoader() sut.load_directory(self.plugin_dir) self.assertEqual({}, sut.plugins)
def test_load_simple_file(self): self._create('foo.py', 'class Foo(object): pass') sut = PluginLoader() sut.load_directory(self.plugin_dir) self.assertEqual(['Foo'], list(sut.plugins.keys()))
class PluginRegistry(object): """ """ def __init__(self, deviceRegistry): """ """ self.__deviceRegistry = deviceRegistry self.__logger = logging.getLogger("PluginRegistry") self.__pluginsloader = PluginLoader() self.__plugins = [] def __isPlugin(self, name, clazz): #print ("Checking %s (%s)" % (name, clazz)) return isclass(clazz) and issubclass(clazz, Plugin) and clazz != Plugin def getPlugins(self): return self.__plugins def initialize(self, directory): self.__pluginsloader.load_directory( directory, onlyif=self.__isPlugin, context={'deviceRegistry': self.__deviceRegistry}) for name, plugin in self.__pluginsloader.plugins.iteritems(): self.__logger.debug("Loading plugin: %s" % name) inst = plugin() inst.setDeviceRegistry(self.__deviceRegistry) self.__plugins.append(inst)
class PluginRegistry(object): """ """ def __init__(self, deviceRegistry): """ """ self.__deviceRegistry = deviceRegistry self.__logger = logging.getLogger("PluginRegistry") self.__pluginsloader = PluginLoader() self.__plugins = [] def __isPlugin(self, name, clazz): #print ("Checking %s (%s)" % (name, clazz)) return isclass(clazz) and issubclass(clazz, Plugin) and clazz != Plugin def getPlugins(self): return self.__plugins def initialize(self, directory): self.__pluginsloader.load_directory(directory, onlyif=self.__isPlugin, context={'deviceRegistry': self.__deviceRegistry}) for name, plugin in self.__pluginsloader.plugins.iteritems(): self.__logger.debug("Loading plugin: %s" % name) inst = plugin() inst.setDeviceRegistry(self.__deviceRegistry) self.__plugins.append(inst)
def test_containing_directories(self): self._create_dir('foo') sut = PluginLoader() sut.load_directory(self.plugin_dir) self.assertEqual({}, sut.plugins)
def test_load_simple_file(self): self._create('foo.py', 'class Foo(object): pass') sut = PluginLoader() sut.load_directory(self.plugin_dir) self.assertEqual(['Foo'], list(sut.plugins.keys()))
def test_ignorable_classes(self): self._create('foo.py', 'class Foo(object): pass') sut = PluginLoader() sut.load_directory(self.plugin_dir, onlyif=lambda x, y: False) self.assertEqual({}, sut.plugins)
def test_link_recursive(self): os.symlink(self.plugin_dir, os.path.join(self.plugin_dir, 'foo')) sut = PluginLoader() sut.load_directory(self.plugin_dir, recursive=True) self.assertEqual({}, sut.plugins)
def test_recursive_mode_off(self): self._create_dir('foo') self._create('bar.py', 'class Bazz(object): pass', 'foo') sut = PluginLoader() sut.load_directory(self.plugin_dir, recursive=False) self.assertEqual({}, sut.plugins)
def test_recursive_mode(self): self._create_dir('foo') self._create('bar.py', 'class Bazz(object): pass', 'foo') sut = PluginLoader() sut.load_directory(self.plugin_dir, recursive=True) self.assertEqual(['Bazz'], list(sut.plugins.keys()))
def test_link_recursive(self): os.symlink(self.plugin_dir, os.path.join(self.plugin_dir, 'foo')) sut = PluginLoader() sut.load_directory(self.plugin_dir, recursive=True) self.assertEqual({}, sut.plugins)
def test_recursive_mode_off(self): self._create_dir('foo') self._create('bar.py', 'class Bazz(object): pass', 'foo') sut = PluginLoader() sut.load_directory(self.plugin_dir, recursive=False) self.assertEqual({}, sut.plugins)
def test_recursive_mode(self): self._create_dir('foo') self._create('bar.py', 'class Bazz(object): pass', 'foo') sut = PluginLoader() sut.load_directory(self.plugin_dir, recursive=True) self.assertEqual(['Bazz'], list(sut.plugins.keys()))
def _load_plugins(self): plugin_path = os.path.join( os.path.dirname(__file__), 'plugins', ) plugin_mgr = PluginLoader() plugin_mgr.load_directory(plugin_path, onlyif=self._check_plugin) self.plugins = [c() for n, c in plugin_mgr.plugins.items()]
def _load_plugins(self): plugin_path = os.path.join( os.path.dirname(__file__), 'plugins', ) plugin_mgr = PluginLoader() plugin_mgr.load_directory(plugin_path, onlyif=self._check_plugin) self.plugins = [c() for n, c in plugin_mgr.plugins.items()]
def test_use_context(self): class Pattern(object): pass self._create('foo.py', 'class Foo(Bar): pass') sut = PluginLoader() sut.load_directory(self.plugin_dir, context={'Bar': Pattern}) self.assertEqual(sorted(['Foo', 'Bar']), sorted(list(sut.plugins.keys())))
def test_use_context(self): class Pattern(object): pass self._create('foo.py', 'class Foo(Bar): pass') sut = PluginLoader() sut.load_directory(self.plugin_dir, context={'Bar': Pattern}) self.assertEqual(sorted(['Foo', 'Bar']), sorted(list(sut.plugins.keys())))
def test_empty_directory(self): sut = PluginLoader() sut.load_directory(self.plugin_dir) self.assertEqual({}, sut.plugins)
def test_empty_directory(self): sut = PluginLoader() sut.load_directory(self.plugin_dir) self.assertEqual({}, sut.plugins)