Skip to content
Snippets Groups Projects
test_plugins.py 931 B
Newer Older
  • Learn to ignore specific revisions
  • 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}