diff --git a/src/apps/api/tests/test_leaderboards.py b/src/apps/api/tests/test_leaderboards.py index 5d54ab0e9..5455ef173 100644 --- a/src/apps/api/tests/test_leaderboards.py +++ b/src/apps/api/tests/test_leaderboards.py @@ -23,7 +23,18 @@ def test_getting_many_submissions_doesnt_cause_too_many_queries(self): assert resp.status_code == 200 -# TODO: Test listing all leaderboards isn't a thing? +class LeaderboardTest(APITestCase): + def setUp(self): + leaderboard1 = factories.LeaderboardFactory() + leaderboard2 = factories.LeaderboardFactory() + _ = factories.ColumnFactory(leaderboard=leaderboard1, index=0) + _ = factories.ColumnFactory(leaderboard=leaderboard2, index=0) + + def test_get_all_leaderboards(self): + url = reverse('leaderboard-list') + resp = self.client.get(url) + assert resp.status_code == 200 + assert resp.data == [] class HiddenLeaderboardTests(APITestCase): diff --git a/src/apps/api/views/leaderboards.py b/src/apps/api/views/leaderboards.py index 315b1c1ff..2b7ed2524 100644 --- a/src/apps/api/views/leaderboards.py +++ b/src/apps/api/views/leaderboards.py @@ -1,5 +1,6 @@ from rest_framework.permissions import IsAuthenticated from rest_framework.viewsets import ModelViewSet +from rest_framework.response import Response from api.permissions import LeaderboardNotHidden, LeaderboardIsOrganizerOrCollaborator from api.serializers.leaderboards import LeaderboardEntriesSerializer from api.serializers.submissions import SubmissionScoreSerializer @@ -23,6 +24,10 @@ def get_permissions(self): return [permission() for permission in self.permission_classes] + def list(self, request, *args, **kwargs): + # Return an empty list for the leaderboard-list endpoint + return Response([]) + class SubmissionScoreViewSet(ModelViewSet): queryset = SubmissionScore.objects.all()