From 0845f7bb0d6454de997f132a7b26c8f36d62a54f Mon Sep 17 00:00:00 2001 From: "robinwilliam.hundt" <robinwilliam.hundt@stud.uni-goettingen.de> Date: Sun, 10 Dec 2017 18:09:54 +0100 Subject: [PATCH] Added test for functional views --- core/tests/test_functional_views.py | 50 +++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 core/tests/test_functional_views.py diff --git a/core/tests/test_functional_views.py b/core/tests/test_functional_views.py new file mode 100644 index 00000000..f5107bf5 --- /dev/null +++ b/core/tests/test_functional_views.py @@ -0,0 +1,50 @@ +from django.urls import reverse +from rest_framework.test import (APIRequestFactory, APITestCase, + force_authenticate) +from core.models import ExamType +from core.views import get_exam_module, get_user_role +from util.factories import GradyUserFactory + + +class GetUserRoleTest(APITestCase): + @classmethod + def setUpTestData(cls): + cls.factory = APIRequestFactory() + cls.user_factory = GradyUserFactory() + cls.student = cls.user_factory.make_student() + cls.tutor = cls.user_factory.make_tutor() + cls.reviewer = cls.user_factory.make_reviewer() + + def setUp(self): + self.request = self.factory.get(reverse('user-role')) + + def test_get_user_model_returns_student(self): + force_authenticate(self.request, user=self.student.user) + response = get_user_role(self.request) + self.assertEqual(response.data['role'], 'Student') + + def test_get_user_model_returns_tutor(self): + force_authenticate(self.request, user=self.tutor.user) + response = get_user_role(self.request) + self.assertEqual(response.data['role'], 'Tutor') + + def test_get_user_model_returns_reviewer(self): + force_authenticate(self.request, user=self.reviewer.user) + response = get_user_role(self.request) + self.assertEqual(response.data['role'], 'Reviewer') + + +class GetExamModuleTest(APITestCase): + def test_get_exam_module(self): + self.factory = APIRequestFactory() + self.user = GradyUserFactory().make_student().user + self.request = self.factory.get(reverse('exam-module')) + force_authenticate(self.request, user=self.user) + self.expected = ExamType.objects.get_or_create( + pk=1, defaults={ + 'module_reference': 'Test Exam', + 'total_score': 100, + 'pass_score': 50, + })[0].module_reference + self.response = get_exam_module(self.request) + self.assertEqual(self.response.data['exam'], self.expected) -- GitLab