from django.urls import reverse from rest_framework.test import (APIRequestFactory, APITestCase, force_authenticate) from core.views import get_user_role from util.factories import GradyUserFactory, make_exams class GetUserRoleTest(APITestCase): @classmethod def setUpTestData(cls): cls.factory = APIRequestFactory() cls.user_factory = GradyUserFactory() cls.exam = make_exams(exams=[{ 'module_reference': 'Test Exam 01', 'total_score': 100, 'pass_score': 60, }])[0] cls.student = cls.user_factory.make_student(exam=cls.exam) 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) 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) 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) response = get_user_role(self.request) self.assertEqual(response.data['role'], 'Reviewer')