vbv/server/vbv_lernwelt/dashboard/tests/test_views.py

87 lines
2.9 KiB
Python

from django.test import TestCase
from vbv_lernwelt.course.creators.test_utils import (
create_course,
create_course_session,
create_user,
add_course_session_user,
create_course_session_group,
add_course_session_group_supervisor,
)
from vbv_lernwelt.course.models import CourseSessionUser
from vbv_lernwelt.dashboard.views import get_course_sessions_with_roles_for_user
from vbv_lernwelt.learning_mentor.models import LearningMentor
class GetCourseSessionsForUserTestCase(TestCase):
def setUp(self):
self.course, _ = create_course("Test Course")
self.course_session = create_course_session(
course=self.course, title="Test Session"
)
def test_participant_get_sessions(self):
# participant gets all his sessions marked with role "MEMBER"
participant = create_user("participant")
add_course_session_user(
self.course_session,
participant,
role=CourseSessionUser.Role.MEMBER,
)
# WHEN
sessions = get_course_sessions_with_roles_for_user(participant)
# THEN
self.assertEqual(len(sessions), 1)
self.assertEqual(sessions[0].title, "Test Session")
self.assertSetEqual(sessions[0].roles, {"MEMBER"})
def test_trainer_get_sessions(self):
# GIVEN
# trainer gets all his sessions marked with role "EXPERT"
trainer = create_user("trainer")
add_course_session_user(
self.course_session,
trainer,
role=CourseSessionUser.Role.EXPERT,
)
# WHEN
sessions = get_course_sessions_with_roles_for_user(trainer)
# THEN
self.assertEqual(len(sessions), 1)
self.assertEqual(sessions[0].title, "Test Session")
self.assertSetEqual(sessions[0].roles, {"EXPERT"})
def test_supervisor_get_sessions(self):
supervisor = create_user("supervisor")
group = create_course_session_group(course_session=self.course_session)
add_course_session_group_supervisor(group=group, user=supervisor)
sessions = get_course_sessions_with_roles_for_user(supervisor)
# THEN
self.assertEqual(len(sessions), 1)
self.assertEqual(sessions[0].title, "Test Session")
self.assertEqual(sessions[0].roles, {"SUPERVISOR"})
def test_learning_mentor_get_sessions(self):
mentor = create_user("mentor")
LearningMentor.objects.create(mentor=mentor, course_session=self.course_session)
participant = create_user("participant")
add_course_session_user(
self.course_session,
participant,
role=CourseSessionUser.Role.MEMBER,
)
sessions = get_course_sessions_with_roles_for_user(mentor)
# THEN
self.assertEqual(len(sessions), 1)
self.assertEqual(sessions[0].title, "Test Session")
self.assertEqual(sessions[0].roles, {"LEARNING_MENTOR"})