Example #1
0
def test_serialize_plugin_user(factories):
    user = factories["users.User"]()
    plugin = plugins.get_plugin_config(
        name="test_plugin",
        description="Hello world",
        conf=[{
            "name": "foo",
            "type": "boolean"
        }],
        user=True,
    )

    expected = {
        "name": "test_plugin",
        "enabled": False,
        "description": "Hello world",
        "conf": [{
            "name": "foo",
            "type": "boolean"
        }],
        "user": True,
        "source": False,
        "label": "test_plugin",
        "values": None,
        "homepage": None,
    }

    assert plugins.serialize_plugin(plugin,
                                    plugins.get_confs(user)) == expected
Example #2
0
    def list(self, request, *args, **kwargs):
        user = request.user
        user_plugins = [
            p for p in plugins._plugins.values() if p["user"] is True
        ]

        return response.Response([
            plugins.serialize_plugin(p, confs=plugins.get_confs(user=user))
            for p in user_plugins
        ])
Example #3
0
    def retrieve(self, request, *args, **kwargs):
        user = request.user
        user_plugin = [
            p for p in plugins._plugins.values()
            if p["user"] is True and p["name"] == kwargs["pk"]
        ]
        if not user_plugin:
            return response.Response(status=404)

        return response.Response(
            plugins.serialize_plugin(user_plugin[0],
                                     confs=plugins.get_confs(user=user)))
Example #4
0
    def create(self, request, *args, **kwargs):
        user = request.user
        confs = plugins.get_confs(user=user)

        user_plugin = [
            p for p in plugins._plugins.values()
            if p["user"] is True and p["name"] == kwargs["pk"]
        ]
        if kwargs["pk"] not in confs:
            return response.Response(status=404)
        plugins.set_conf(kwargs["pk"], request.data, user)
        return response.Response(
            plugins.serialize_plugin(user_plugin[0],
                                     confs=plugins.get_confs(user=user)))
Example #5
0
def test_can_update_user_plugin(logged_in_api_client):
    plugin = plugins.get_plugin_config(
        name="test_plugin",
        description="Hello world",
        conf=[{
            "name": "foo",
            "type": "boolean"
        }],
        user=True,
    )
    plugins.get_plugin_config(name="test_plugin2", user=False)
    url = reverse("api:v1:plugins-detail", kwargs={"pk": "test_plugin"})
    response = logged_in_api_client.post(url, {"foo": True})
    assert response.status_code == 200
    assert logged_in_api_client.user.plugins.latest("id").conf == {"foo": True}
    assert response.data == plugins.serialize_plugin(
        plugin, plugins.get_confs(logged_in_api_client.user))
Example #6
0
def test_can_list_user_plugins(logged_in_api_client):
    plugin = plugins.get_plugin_config(
        name="test_plugin",
        description="Hello world",
        conf=[{
            "name": "foo",
            "type": "boolean"
        }],
        user=True,
    )
    plugins.get_plugin_config(name="test_plugin2", user=False)
    url = reverse("api:v1:plugins-list")
    response = logged_in_api_client.get(url)

    assert response.status_code == 200
    assert response.data == [
        plugins.serialize_plugin(plugin,
                                 plugins.get_confs(logged_in_api_client.user))
    ]
Example #7
0
def test_serialize_plugin_user_enabled(factories):
    user = factories["users.User"]()
    plugin = plugins.get_plugin_config(
        name="test_plugin",
        description="Hello world",
        conf=[{
            "name": "foo",
            "type": "boolean"
        }],
        user=True,
        homepage="https://example.com",
    )

    factories["common.PluginConfiguration"](code="test_plugin",
                                            user=user,
                                            enabled=True,
                                            conf={
                                                "foo": "bar"
                                            })
    expected = {
        "name": "test_plugin",
        "enabled": True,
        "description": "Hello world",
        "conf": [{
            "name": "foo",
            "type": "boolean"
        }],
        "user": True,
        "source": False,
        "label": "test_plugin",
        "values": {
            "foo": "bar"
        },
        "homepage": "https://example.com",
    }

    assert plugins.serialize_plugin(plugin,
                                    plugins.get_confs(user)) == expected