Harmonized plugin_conf / plugins_conf
This commit is contained in:
parent
8a3a42e485
commit
3da3627397
|
@ -140,10 +140,10 @@ def get_all_plugins():
|
|||
]
|
||||
|
||||
|
||||
def generate_plugin_conf(plugins, user=None):
|
||||
def generate_plugins_conf(plugins, user=None):
|
||||
from . import models
|
||||
|
||||
plugin_conf = []
|
||||
plugins_conf = []
|
||||
qs = models.Plugin.objects.filter(is_enabled=True).values("name", "config")
|
||||
by_plugin_name = {obj["name"]: obj["config"] for obj in qs}
|
||||
for plugin in plugins:
|
||||
|
@ -154,28 +154,28 @@ def generate_plugin_conf(plugins, user=None):
|
|||
"user": None,
|
||||
"settings": by_plugin_name[plugin.name] or {},
|
||||
}
|
||||
plugin_conf.append(conf)
|
||||
plugins_conf.append(conf)
|
||||
|
||||
if plugin_conf and user and user.is_authenticated:
|
||||
if plugins_conf and user and user.is_authenticated:
|
||||
qs = models.UserPlugin.objects.filter(
|
||||
user=user, plugin__is_enabled=True, is_enabled=True
|
||||
).values("plugin__name", "config")
|
||||
by_plugin_name = {obj["plugin__name"]: obj["config"] for obj in qs}
|
||||
for row in plugin_conf:
|
||||
for row in plugins_conf:
|
||||
if row["obj"].name in by_plugin_name:
|
||||
row["user"] = {
|
||||
"id": user.pk,
|
||||
"settings": by_plugin_name[row["obj"].name],
|
||||
}
|
||||
return plugin_conf
|
||||
return plugins_conf
|
||||
|
||||
|
||||
def attach_plugin_conf(obj, user):
|
||||
def attach_plugins_conf(obj, user):
|
||||
from funkwhale_api.common import preferences
|
||||
|
||||
plugins_enabled = preferences.get("plugins__enabled")
|
||||
if plugins_enabled:
|
||||
conf = generate_plugin_conf(plugins=get_all_plugins(), user=user)
|
||||
conf = generate_plugins_conf(plugins=get_all_plugins(), user=user)
|
||||
else:
|
||||
conf = None
|
||||
setattr(obj, "plugin_conf", conf)
|
||||
setattr(obj, "plugins_conf", conf)
|
||||
|
|
|
@ -83,7 +83,7 @@ def test_get_all_plugins(mocker):
|
|||
assert all_plugins == [pl1, pl2]
|
||||
|
||||
|
||||
def test_generate_plugin_conf(factories, plugin_class):
|
||||
def test_generate_plugins_conf(factories, plugin_class):
|
||||
plugin1 = plugin_class("test1", "test1")
|
||||
plugin2 = plugin_class("test2", "test2")
|
||||
plugin3 = plugin_class("test3", "test3")
|
||||
|
@ -122,11 +122,11 @@ def test_generate_plugin_conf(factories, plugin_class):
|
|||
{"obj": plugin4, "settings": plugin4_db_conf.config, "user": None},
|
||||
]
|
||||
|
||||
conf = plugins.generate_plugin_conf([plugin1, plugin2, plugin3, plugin4], user=user)
|
||||
conf = plugins.generate_plugins_conf([plugin1, plugin2, plugin3, plugin4], user=user)
|
||||
assert conf == expected
|
||||
|
||||
|
||||
def test_generate_plugin_conf_anonymous_user(factories, plugin_class):
|
||||
def test_generate_plugins_conf_anonymous_user(factories, plugin_class):
|
||||
plugin1 = plugin_class("test1", "test1")
|
||||
plugin2 = plugin_class("test2", "test2")
|
||||
plugin3 = plugin_class("test3", "test3")
|
||||
|
@ -154,28 +154,28 @@ def test_generate_plugin_conf_anonymous_user(factories, plugin_class):
|
|||
{"obj": plugin4, "settings": plugin4_db_conf.config, "user": None},
|
||||
]
|
||||
|
||||
conf = plugins.generate_plugin_conf([plugin1, plugin2, plugin3, plugin4], user=None)
|
||||
conf = plugins.generate_plugins_conf([plugin1, plugin2, plugin3, plugin4], user=None)
|
||||
assert conf == expected
|
||||
|
||||
|
||||
def test_attach_plugin_conf(mocker):
|
||||
def test_attach_plugins_conf(mocker):
|
||||
request = mocker.Mock()
|
||||
generate_plugin_conf = mocker.patch.object(plugins, "generate_plugin_conf")
|
||||
generate_plugins_conf = mocker.patch.object(plugins, "generate_plugins_conf")
|
||||
get_all_plugins = mocker.patch.object(plugins, "get_all_plugins")
|
||||
user = mocker.Mock()
|
||||
|
||||
plugins.attach_plugin_conf(request, user=user)
|
||||
plugins.attach_plugins_conf(request, user=user)
|
||||
|
||||
generate_plugin_conf.assert_called_once_with(
|
||||
generate_plugins_conf.assert_called_once_with(
|
||||
plugins=get_all_plugins.return_value, user=user
|
||||
)
|
||||
assert request.plugin_conf == generate_plugin_conf.return_value
|
||||
assert request.plugins_conf == generate_plugins_conf.return_value
|
||||
|
||||
|
||||
def test_attach_plugin_noop_if_plugins_disabled(mocker, preferences):
|
||||
preferences["plugins__enabled"] = False
|
||||
request = mocker.Mock()
|
||||
|
||||
plugins.attach_plugin_conf(request, user=None)
|
||||
plugins.attach_plugins_conf(request, user=None)
|
||||
|
||||
assert request.plugin_conf is None
|
||||
assert request.plugins_conf is None
|
||||
|
|
Loading…
Reference in New Issue