Skip to content
Snippets Groups Projects
test_plugins.py 931 B
Newer Older
Agate's avatar
Agate committed
import pytest

from rest_framework import serializers

from config import plugins
from funkwhale_api.common import models


def test_plugin_validate_set_conf():
    class S(serializers.Serializer):
        test = serializers.CharField()
        foo = serializers.BooleanField()

    class P(plugins.Plugin):
        conf_serializer = S

    p = P("noop", "noop")
    with pytest.raises(serializers.ValidationError):
        assert p.set_conf({"test": "hello", "foo": "bar"})


def test_plugin_validate_set_conf_persists():
    class S(serializers.Serializer):
        test = serializers.CharField()
        foo = serializers.BooleanField()

    class P(plugins.Plugin):
        name = "test_plugin"
        conf_serializer = S

    p = P("noop", "noop")
    p.set_conf({"test": "hello", "foo": False})
    assert p.instance() == models.PodPlugin.objects.latest("id")
    assert p.instance().conf == {"test": "hello", "foo": False}