60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
from django.urls import reverse
|
|
from rest_framework import status
|
|
from rest_framework.test import APITestCase
|
|
|
|
from vbv_lernwelt.course.creators.test_utils import (
|
|
create_course,
|
|
create_course_session,
|
|
create_user,
|
|
)
|
|
from vbv_lernwelt.course.models import CourseSessionUser
|
|
from vbv_lernwelt.learning_mentor.models import LearningMentor
|
|
|
|
|
|
class MeUserViewTest(APITestCase):
|
|
def setUp(self) -> None:
|
|
self.course, _ = create_course("Test Course")
|
|
self.user = create_user("tester")
|
|
self.url = reverse("get_cockpit_type", kwargs={"course_id": self.course.id})
|
|
|
|
def test_no_cockpit(self) -> None:
|
|
# GIVEN
|
|
self.client.force_login(self.user)
|
|
|
|
# WHEN
|
|
response = self.client.get(self.url)
|
|
|
|
# THEN
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEquals(response.data["type"], None)
|
|
|
|
def test_mentor_cockpit(self) -> None:
|
|
# GIVEN
|
|
self.client.force_login(self.user)
|
|
LearningMentor.objects.create(mentor=self.user, course=self.course)
|
|
|
|
# WHEN
|
|
response = self.client.get(self.url)
|
|
|
|
# THEN
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEquals(response.data["type"], "mentor")
|
|
|
|
def test_trainer_cockpit(self) -> None:
|
|
# GIVEN
|
|
self.client.force_login(self.user)
|
|
course_session = create_course_session(course=self.course, title="Test Session")
|
|
|
|
CourseSessionUser.objects.create(
|
|
user=self.user,
|
|
course_session=course_session,
|
|
role=CourseSessionUser.Role.EXPERT,
|
|
)
|
|
|
|
# WHEN
|
|
response = self.client.get(self.url)
|
|
|
|
# THEN
|
|
self.assertEqual(response.status_code, status.HTTP_200_OK)
|
|
self.assertEquals(response.data["type"], "expert")
|