From aba42382bee8a3eaa70f11891eb3d03e6e3fd8bf Mon Sep 17 00:00:00 2001 From: janmax <mail-github@jmx.io> Date: Thu, 23 Nov 2017 23:06:55 +0100 Subject: [PATCH] ExamListView implemented and tested --- backend/core/tests/test_examlist.py | 32 +++++++++++++++++++++++++++++ backend/core/urls.py | 2 ++ backend/core/views.py | 8 ++++++-- 3 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 backend/core/tests/test_examlist.py diff --git a/backend/core/tests/test_examlist.py b/backend/core/tests/test_examlist.py new file mode 100644 index 00000000..51d55a8b --- /dev/null +++ b/backend/core/tests/test_examlist.py @@ -0,0 +1,32 @@ +""" Tests that we can receive information about what exams where written """ + +from django.urls import reverse +from rest_framework import status +from rest_framework.test import (APIRequestFactory, APITestCase, + force_authenticate) + +from core.models import ExamType +from core.views import ExamListView +from util.factories import GradyUserFactory + +NUMBER_OF_TUTORS = 7 + + +class ExamListTest(APITestCase): + + @classmethod + def setUpTestData(cls): + cls.factory = APIRequestFactory() + cls.user_factory = GradyUserFactory() + + def setUp(self): + self.request = self.factory.get(reverse('exam-list')) + force_authenticate(self.request, self.user_factory.make_student().user) + self.view = ExamListView.as_view() + self.response = self.view(self.request) + + def test_can_access_when_authenticated(self): + self.assertEqual(self.response.status_code, status.HTTP_200_OK) + + def test_getting_all_available_exams(self): + self.assertEqual(ExamType.objects.count(), len(self.response.data)) diff --git a/backend/core/urls.py b/backend/core/urls.py index d7eb60ec..c0249223 100644 --- a/backend/core/urls.py +++ b/backend/core/urls.py @@ -7,6 +7,8 @@ from core import views urlpatterns = [ url(r'^api/student/$', views.StudentApiView.as_view(), name='student-page'), + url(r'^api/examlist/$', views.ExamListView.as_view(), name='exam-list'), + url(r'^api/tutor/$', views.TutorCreateView.as_view(), name='tutor-create'), url(r'^api/tutorlist/$', views.TutorListApiView.as_view(), name='tutor-list'), diff --git a/backend/core/views.py b/backend/core/views.py index f47ac250..3bce5564 100644 --- a/backend/core/views.py +++ b/backend/core/views.py @@ -3,8 +3,8 @@ import logging from rest_framework import generics from core.permissions import IsStudent, IsReviewer -from core.serializers import StudentSerializer, TutorSerializer -from core.models import Tutor +from core.serializers import StudentSerializer, TutorSerializer, ExamSerializer +from core.models import Tutor, ExamType log = logging.getLogger(__name__) @@ -30,3 +30,7 @@ class TutorCreateView(generics.CreateAPIView): permission_classes = (IsReviewer,) serializer_class = TutorSerializer + +class ExamListView(generics.ListAPIView): + queryset = ExamType.objects.all() + serializer_class = ExamSerializer -- GitLab