See #432: fixed an ordering issue on tag length

This commit is contained in:
Eliot Berriot 2019-07-15 15:27:53 +02:00
parent e3f6baecd4
commit 995be49402
No known key found for this signature in database
GPG Key ID: DD6965E2476E5C27
2 changed files with 9 additions and 3 deletions

View File

@ -1,6 +1,8 @@
from django.db.models import functions from django.db.models import functions
from rest_framework import viewsets from rest_framework import viewsets
import django_filters.rest_framework
from funkwhale_api.users.oauth import permissions as oauth_permissions from funkwhale_api.users.oauth import permissions as oauth_permissions
from . import filters from . import filters
@ -20,3 +22,4 @@ class TagViewSet(viewsets.ReadOnlyModelViewSet):
required_scope = "libraries" required_scope = "libraries"
anonymous_policy = "setting" anonymous_policy = "setting"
filterset_class = filters.TagFilter filterset_class = filters.TagFilter
filter_backends = [django_filters.rest_framework.DjangoFilterBackend]

View File

@ -23,18 +23,21 @@ def test_tags_list_ordering_length(factories, logged_in_api_client):
url = reverse("api:v1:tags-list") url = reverse("api:v1:tags-list")
tags = [ tags = [
factories["tags.Tag"](name="iamareallylongtag"), factories["tags.Tag"](name="iamareallylongtag"),
factories["tags.Tag"](name="reallylongtag"),
factories["tags.Tag"](name="short"), factories["tags.Tag"](name="short"),
factories["tags.Tag"](name="reallylongtag"),
factories["tags.Tag"](name="bar"), factories["tags.Tag"](name="bar"),
] ]
expected = { expected = {
"count": 4, "count": 4,
"next": None, "next": None,
"previous": None, "previous": None,
"results": [serializers.TagSerializer(tag).data for tag in tags], "results": [
serializers.TagSerializer(tag).data
for tag in [tags[3], tags[1], tags[2], tags[0]]
],
} }
response = logged_in_api_client.get(url, {"ordering": "-length"}) response = logged_in_api_client.get(url, {"ordering": "length"})
assert response.data == expected assert response.data == expected