From 49e2b069101f59242fc5ac68facc053478d522e1 Mon Sep 17 00:00:00 2001 From: janmax <mail-github@jmx.io> Date: Thu, 23 Nov 2017 18:32:36 +0100 Subject: [PATCH] Added some tests for access rights and frontend tests are no longer allowed to fail --- .gitlab-ci.yml | 1 - backend/core/tests/test_access_rights.py | 1 + .../core/tests/test_tutor_api_endpoints.py | 41 +++++++++++++++++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 0ec2cf34..a1ffd6b9 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -56,7 +56,6 @@ test_frontend: script: - yarn install - yarn test --single-run - allow_failure: true # ============================== Staging section ============================= # .staging_template: &staging_definition diff --git a/backend/core/tests/test_access_rights.py b/backend/core/tests/test_access_rights.py index 78853afc..2e97b2ed 100644 --- a/backend/core/tests/test_access_rights.py +++ b/backend/core/tests/test_access_rights.py @@ -6,6 +6,7 @@ from core.views import StudentApiView from util.factories import GradyUserFactory + class AccessRightsOfStudentAPIViewTests(APITestCase): """ All tests that enshure that only students can see what students should see belong here """ diff --git a/backend/core/tests/test_tutor_api_endpoints.py b/backend/core/tests/test_tutor_api_endpoints.py index 698d987c..88982efb 100644 --- a/backend/core/tests/test_tutor_api_endpoints.py +++ b/backend/core/tests/test_tutor_api_endpoints.py @@ -5,3 +5,44 @@ * GET /tutorlist list of all tutors with their scores """ +from rest_framework.test import APITestCase, APIRequestFactory, force_authenticate +from rest_framework import status +from core.models import Reviewer +from django.urls import reverse +from core.views import StudentApiView + +from util.factories import GradyUserFactory + + +class AccessRightsTests(APITestCase): + + @classmethod + def setUpTestData(cls): + cls.factory = APIRequestFactory() + cls.user_factory = GradyUserFactory() + + def setUp(self): + self.student = self.user_factory.make_student() + self.tutor = self.user_factory.make_tutor() + self.reviewer = self.user_factory.make_reviewer() + self.request = self.factory.get(reverse('student-page')) + self.view = StudentApiView.as_view() + + def test_unauthorized_access_denied(self): + response = self.view(self.request) + self.assertEqual(response.status_code, status.HTTP_401_UNAUTHORIZED) + + def test_tutor_has_no_access(self): + force_authenticate(self.request, user=self.tutor.user) + response = self.view(self.request) + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + def test_reviewer_has_no_access(self): + force_authenticate(self.request, user=self.reviewer.user) + response = self.view(self.request) + self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) + + def test_student_is_authorized(self): + force_authenticate(self.request, user=self.student.user) + response = self.view(self.request) + self.assertEqual(response.status_code, status.HTTP_200_OK) -- GitLab