Esempio n. 1
0
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
Esempio n. 2
0
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 == {}
Esempio n. 3
0
    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