From 995be4940208c919a09584fe9ed9c08c437f6bf5 Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Mon, 15 Jul 2019 15:27:53 +0200
Subject: [PATCH] See #432: fixed an ordering issue on tag length

---
 api/funkwhale_api/tags/views.py | 3 +++
 api/tests/tags/test_views.py    | 9 ++++++---
 2 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/api/funkwhale_api/tags/views.py b/api/funkwhale_api/tags/views.py
index d7b1d8aa..1d052ca7 100644
--- a/api/funkwhale_api/tags/views.py
+++ b/api/funkwhale_api/tags/views.py
@@ -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]
diff --git a/api/tests/tags/test_views.py b/api/tests/tags/test_views.py
index fd3246ad..b42e9ab3 100644
--- a/api/tests/tags/test_views.py
+++ b/api/tests/tags/test_views.py
@@ -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
 
-- 
GitLab