def test_plugin_metadata(): plugin_list = list(plugins.find_plugins(pluginpath)) assert len(plugin_list) == 6 p = plugin_list[0] assert p.name == "plugin1" assert p.location_name == "testplugins" assert p.relative_location == "plugin1" plugin_type = p.metadata['type'] assert plugin_type == "testplugins" tm = p.testmodules assert "tests/testFoo" in tm assert not p.errors assert p.dependencies["plugin2"] == "0.0" s = p.scripts assert len(s) == 4 assert "thecode.js" in s assert "subdir/morecode.js" in s text = p.get_script_text("thecode.js") assert "this is the code" in text p = plugin_list[1] assert p.name == "plugin2" assert not p.errors assert not p.dependencies s = p.scripts assert len(s) == 1 assert s == ["mycode.js"] p = plugin_list[2] assert p.name == "plugin3" assert p.errors[ 0] == "Problem with metadata JSON: No JSON object could be decoded" p = plugin_list[3] assert p.name == "SingleFilePlugin1" assert p.location_name == "testplugins" errors = p.errors assert errors == [] s = p.scripts assert s == [""] script_text = p.get_script_text("") assert "exports.someFunction" in script_text p = plugin_list[4] assert p.name == "SingleFilePlugin2" errors = p.errors assert errors
def test_single_plugin_in_path(): temppath = pluginpath[:] temppath.append( dict(name="user", plugin=thisdir / "SinglePlugin.js", chop=len(thisdir))) plugin = plugins.lookup_plugin("SinglePlugin", temppath) errors = plugin.errors assert not errors plugin_list = plugins.find_plugins(temppath) assert len(plugin_list) == 7 p = plugin_list[6] assert p.name == "SinglePlugin" plugin_type = p.metadata['type'] assert plugin_type == "user" assert p.templates == {}
def _find_plugins(self): self._plugin_catalog = dict( (p.name, p) for p in plugins.find_plugins(self.search_path)) if self.jquery == "global": self._plugin_catalog['jquery'] = plugins.Plugin( "jquery", path(__file__).dirname() / "globaljquery.js", dict(name="thirdparty")) errors = [] worker_plugins = [] for plugin in self.dynamic_plugins: try: plugin_obj = self.get_plugin(plugin) except KeyError: errors.append("Plugin %s not found" % plugin) continue # note that we need to copy self.plugins because # we're going to be removing items from the list for plugin in list(self.plugins): try: plugin_obj = self.get_plugin(plugin) except KeyError: errors.append("Plugin %s not found" % plugin) continue env = plugin_obj.metadata.get("environments") if not env: continue is_worker = env.get("worker", False) if is_worker: worker_plugins.append(plugin) is_main = env.get("main", False) if not is_main: self.plugins.remove(plugin) self.worker_plugins = worker_plugins return errors