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 rest_framework import viewsets
import django_filters.rest_framework
from funkwhale_api.users.oauth import permissions as oauth_permissions
from . import filters
@ -20,3 +22,4 @@ class TagViewSet(viewsets.ReadOnlyModelViewSet):
required_scope = "libraries"
anonymous_policy = "setting"
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")
tags = [
factories["tags.Tag"](name="iamareallylongtag"),
factories["tags.Tag"](name="reallylongtag"),
factories["tags.Tag"](name="short"),
factories["tags.Tag"](name="reallylongtag"),
factories["tags.Tag"](name="bar"),
]
expected = {
"count": 4,
"next": 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