Skip to content
Snippets Groups Projects
Commit 1c6f1983 authored by florimondmanca's avatar florimondmanca
Browse files

add tutoringgroups view to tutor api

parent 29c3c041
No related branches found
No related tags found
No related merge requests found
"""Tutor API tests.""" """Tutor API tests."""
from users.serializers import TutorSerializer from rest_framework import status
from tests.factory import TutorFactory from tests.factory import TutorFactory, TutorTutoringGroupFactory
from tests.utils.api import HyperlinkedAPITestCase
from tests.test_api.mixins import ProfileEndpointsTestMixin from tests.test_api.mixins import ProfileEndpointsTestMixin
from tests.utils.api import HyperlinkedAPITestCase
from users.serializers import TutorSerializer
class TutorEndpointsTest(ProfileEndpointsTestMixin, HyperlinkedAPITestCase): class TutorEndpointsTest(ProfileEndpointsTestMixin, HyperlinkedAPITestCase):
...@@ -54,3 +56,15 @@ class TutorEndpointsTest(ProfileEndpointsTestMixin, HyperlinkedAPITestCase): ...@@ -54,3 +56,15 @@ class TutorEndpointsTest(ProfileEndpointsTestMixin, HyperlinkedAPITestCase):
url = '/api/tutors/{obj.pk}/'.format(obj=obj) url = '/api/tutors/{obj.pk}/'.format(obj=obj)
response = self.client.delete(url) response = self.client.delete(url)
return response return response
def test_list_tutoring_groups(self):
def perform_list_tutoring_groups():
obj = self.factory.create()
# add tutor to several tutoring groups
TutorTutoringGroupFactory.create_batch(3, tutor=obj)
url = '/api/tutors/{}/tutoringgroups/'.format(obj.pk)
response = self.client.get(url)
return response
self.assertRequiresAuth(perform_list_tutoring_groups,
expected_status_code=status.HTTP_200_OK)
...@@ -98,6 +98,15 @@ class TutorViewSet(ProfileViewSet): ...@@ -98,6 +98,15 @@ class TutorViewSet(ProfileViewSet):
queryset = Tutor.objects.all() queryset = Tutor.objects.all()
serializer_class = TutorSerializer serializer_class = TutorSerializer
@detail_route()
def tutoringgroups(self, request, pk=None):
"""Retrieve the tutoring groups of a tutor."""
tutor = self.get_object()
tutoring_groups = tutor.tutoring_groups.all()
serializer = TutoringGroupSerializer(tutoring_groups, many=True,
context={'request': request})
return Response(serializer.data)
class StudentViewSet(ProfileViewSet): class StudentViewSet(ProfileViewSet):
"""API endpoint that allows students to be viewed or edited.""" """API endpoint that allows students to be viewed or edited."""
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment