Skip to content
Snippets Groups Projects
Commit 909a747e authored by borzechof99's avatar borzechof99 :whale2:
Browse files

Add Archive View and Tests

parent 6d6154e7
No related branches found
No related tags found
No related merge requests found
......@@ -204,3 +204,29 @@ class CriteriaSerializer(serializers.BaseSerializer):
criteria_list.append(criterion_dict)
return criteria_list
class ArchiveSerializer(serializers.BaseSerializer):
"""
Serializes Sports in an Archive Format
"""
def to_representation(self, sport_list):
"""
Takes a list of Sport Objects and returns id, name, last_used, url serialized
"""
json_sport_list = []
for sport in sport_list:
json_sport_list.append(
{
"id": sport.pk,
"name": sport.name,
"last_used": sport.last_used,
"url": sport.url,
}
)
return json_sport_list
......@@ -547,3 +547,26 @@ class APITest(APITestCase):
response = self.client.get(reverse("small-sport-list-detail", kwargs={"pk": 1}))
self.assertEqual(response.data["currently_active"], False)
def test_sport_archive(self):
"""
Tests if a Sport is correctly displayed in the Archive
"""
# Get initial State of Archive
response = self.client.get(reverse("archive"))
self.assertEqual(response.data, [])
# Change State of Sport
response = self.client.patch(
reverse("small-sport-list-detail", kwargs={"pk": 1}),
data={"currently_active": False},
format="json",
)
# Check whether the Archive changed
response = self.client.get(reverse("archive"))
self.assertEqual(response.data[0]["id"], 1)
self.assertEqual(response.data[0]["name"], "Jiu Jitsu")
......@@ -18,6 +18,7 @@ from .serializers import (
SingleSportSerializer,
CriteriaSerializer,
IncompleteSportSerializer,
ArchiveSerializer,
)
from .models import Sport, Criterion, Question
......@@ -281,3 +282,20 @@ class CriteriaView(APIView):
response = CriteriaSerializer(data)
return Response(response.data)
class SportArchiveView(APIView):
"""
View For the List of all Archived Sports (so all sports with currently_active=False)
"""
def get(self, request):
"""
GET for api/admin/archive/
"""
archived_sports = Sport.objects.filter(currently_active=False)
response = ArchiveSerializer(archived_sports)
return Response(response.data)
......@@ -33,4 +33,5 @@ urlpatterns = [
name="incomplete",
),
path("api/admin/criteria/", views.CriteriaView.as_view(), name="criteria"),
path("api/admin/sport/archive/", views.SportArchiveView.as_view(), name="archive"),
]
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment