Пример #1
0
 def test_getInfosDictFromPlugin(self):
     analyzer = PluginFileAnalyzerMathingRegex(
         "mouf", r".*VersionedPlugin\d+\.py$")
     info_dict, cf_parser = analyzer.getInfosDictFromPlugin(
         self.plugin_directory,
         os.path.basename(self.version_plugin_10_path))
     self.assertEqual(info_dict, {
         'path': self.version_plugin_10_path,
         'name': 'VersionedPlugin10'
     })
     self.assertTrue(isinstance(cf_parser, ConfigParser))
Пример #2
0
    def test_setPluginInfoClass_for_named_analyzer(self):
        class SpecificPluginInfo(PluginInfo):
            pass

        pl = PluginFileLocator()
        pl.setPluginPlaces([self.plugin_directory])
        newAnalyzer = PluginFileAnalyzerMathingRegex(
            "mouf", r".*VersionedPlugin\d+\.py$")
        pl.appendAnalyzer(newAnalyzer)
        pl.setPluginInfoClass(SpecificPluginInfo, "info_ext")
        candidates, num = pl.locatePlugins()
        self.assertEqual(num, 5)
        self.assertEqual(len(candidates), num)
        versioned_plugins = [
            c for c in candidates if "VersionedPlugin" in c[0]
        ]
        self.assertEqual(4, len(versioned_plugins))
        for p in versioned_plugins:
            self.assertTrue(isinstance(p[2], PluginInfo))
        simple_plugins = [
            c for c in candidates if "VersionedPlugin" not in c[0]
        ]
        self.assertEqual(1, len(simple_plugins))
        for p in simple_plugins:
            self.assertTrue(isinstance(p[2], SpecificPluginInfo))
Пример #3
0
	def test_appendAnalyzer(self):
		pl = PluginFileLocator()
		pl.setPluginPlaces([self.plugin_directory])
		newAnalyzer = PluginFileAnalyzerMathingRegex("mouf",r".*VersionedPlugin\d+\.py$")
		pl.appendAnalyzer(newAnalyzer)
		candidates, num = pl.locatePlugins()
		self.assertEqual(num,5)
		self.assertEqual(len(candidates),num)
Пример #4
0
 def init_manager():
     anl = PluginFileAnalyzerMathingRegex('custom_res_handler_plugins',
                                          r'^[A-Za-z0-9]+\.py$')
     res = PluginFileLocator(plugin_info_cls=CFCustomResourceHandler)
     res.setAnalyzers([anl])
     manager = PluginManager(
         plugin_locator=res,
         categories_filter={'CFHandlers': CFCustomResourceHandler})
     manager.setPluginPlaces([dirname(__file__) + '/plugins'])
     manager.collectPlugins()
     return manager
Пример #5
0
def scan_plugins():
    global _plugin_toc
    _plugin_toc = {}

    # Load the plugins from the plugin directory.
    analyzer = PluginFileAnalyzerMathingRegex('', '.*\\.py$')
    plugin_locator = PluginFileLocator(analyzers=[analyzer])
    manager = PluginManager(plugin_locator=plugin_locator)
    plugin_dirs = _get_plugin_dirs()
    logging.info('Loading plugins in %s' % str(plugin_dirs))
    manager.setPluginPlaces(plugin_dirs)
    manager.collectPlugins()

    # Loop round the plugins and print their names.
    for plugin in manager.getAllPlugins():
        plugin_info = plugin.plugin_object.get_plugin_info()
        for item in plugin_info:
            k = _get_item_key(item['class_type'], item['class_name'])
            _plugin_toc[k] = item
    logging.debug('p3_plugin_manager: _plugin_toc=%s' % _plugin_toc)
Пример #6
0
 def test_isValid(self):
     analyzer = PluginFileAnalyzerMathingRegex(
         "mouf", r".*VersionedPlugin\d+\.py$")
     self.assertFalse(analyzer.isValidPlugin(self.yapsy_plugin_path))
     self.assertTrue(analyzer.isValidPlugin(self.version_plugin_10_path))
     self.assertTrue(analyzer.isValidPlugin(self.version_plugin_12_path))
Пример #7
0
 def test_Contruction(self):
     analyzer = PluginFileAnalyzerMathingRegex("mouf", ".*")
     self.assertEqual(analyzer.name, "mouf")
Пример #8
0
        :raises DeviceError: if a bootloader installation command has an error.
        """
        pass

    def get_help(self):
        """Returns the help message for this plugin.

        It is optional to override this.

        :returns: a string representing the help message for this plugin."""
        return "Installs the {0} bootloader.".format(self.prettyName)


dirs = [
    "/usr/local/weresync/plugins",
    os.path.dirname(__file__),
    get_python_lib()
]

regex_analyzer = PluginFileAnalyzerMathingRegex("regex", "^weresync_.*\.py$")
locator = PluginFileLocator([regex_analyzer])

__manager = PluginManager(categories_filter={"bootloader": IBootPlugin},
                          directories_list=dirs,
                          plugin_locator=locator)


def get_manager():
    """Returns the PluginManager for this instance of WereSync"""
    return __manager
Пример #9
0
	def test_getInfosDictFromPlugin(self):
		analyzer = PluginFileAnalyzerMathingRegex("mouf",r".*VersionedPlugin\d+\.py$")
		info_dict,cf_parser =  analyzer.getInfosDictFromPlugin(self.plugin_directory,
															   os.path.basename(self.version_plugin_10_path))
		self.assertEqual(info_dict,{'path': self.version_plugin_10_path, 'name': 'VersionedPlugin10'})
		self.assertTrue(isinstance(cf_parser,ConfigParser))
Пример #10
0
	def test_isValid(self):
		analyzer = PluginFileAnalyzerMathingRegex("mouf",r".*VersionedPlugin\d+\.py$")
		self.assertFalse(analyzer.isValidPlugin(self.yapsy_plugin_path))
		self.assertTrue(analyzer.isValidPlugin(self.version_plugin_10_path))
		self.assertTrue(analyzer.isValidPlugin(self.version_plugin_12_path))