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