See #432: fixed an ordering issue on tag length
This commit is contained in:
parent
e3f6baecd4
commit
995be49402
|
@ -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]
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue