Skip to content
Snippets Groups Projects
Commit 0845f7bb authored by robinwilliam.hundt's avatar robinwilliam.hundt
Browse files

Added test for functional views

parent 7aac9dc5
No related branches found
No related tags found
1 merge request!23Resolve "Logout of tutors after inactivity"
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)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment