funkwhale/api/tests/instance/test_preferences.py

47 wiersze
1.2 KiB
Python

import pytest
from django.urls import reverse
def test_can_list_settings_via_api(preferences, api_client):
url = reverse("api:v1:instance:settings")
all_preferences = preferences.model.objects.all()
expected_preferences = {
p.preference.identifier(): p
for p in all_preferences
if getattr(p.preference, "show_in_api", False)
}
assert len(expected_preferences) > 0
response = api_client.get(url)
assert response.status_code == 200
assert len(response.data) == len(expected_preferences)
for p in response.data:
i = "__".join([p["section"], p["name"]])
assert i in expected_preferences
@pytest.mark.parametrize(
"pref,value",
[
("instance__name", "My instance"),
("instance__short_description", "For music lovers"),
("instance__long_description", "For real music lovers"),
],
)
def test_instance_settings(pref, value, preferences):
preferences[pref] = value
assert preferences[pref] == value
def test_instance_banner_assign_file_properly(preferences, avatar):
preferences["instance__banner"] = avatar
avatar.seek(0)
banner = preferences["instance__banner"].read()
assert len(banner) > 0
assert banner == avatar.read()