35 lines
931 B
Python
35 lines
931 B
Python
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}
|