175 lines
6.6 KiB
Python
175 lines
6.6 KiB
Python
from django.test import TestCase
|
|
|
|
from vbv_lernwelt.course.creators.test_utils import (
|
|
add_course_session_group_supervisor,
|
|
add_course_session_user,
|
|
create_course,
|
|
create_course_session,
|
|
create_course_session_group,
|
|
create_user,
|
|
)
|
|
from vbv_lernwelt.course.models import CourseSessionUser
|
|
from vbv_lernwelt.dashboard.views import get_course_sessions_with_roles_for_user, get_course_config
|
|
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"})
|
|
|
|
|
|
class GetDashboardConfig(TestCase):
|
|
def setUp(self):
|
|
self.course, _ = create_course("Test Course")
|
|
self.course_session = create_course_session(
|
|
course=self.course, title="Test Session"
|
|
)
|
|
|
|
def _test_config(self, user, role, is_uk, is_vv, is_mentor, has_preview, widgets):
|
|
# WHEN
|
|
sessions = get_course_sessions_with_roles_for_user(user)
|
|
course_configs = get_course_config(sessions)
|
|
|
|
# THEN
|
|
self.assertEqual(len(course_configs), 1)
|
|
self.assertEqual(course_configs[0].course_title, self.course.title)
|
|
self.assertEqual(course_configs[0].is_uk, is_uk)
|
|
self.assertEqual(course_configs[0].is_vv, is_vv)
|
|
self.assertEqual(course_configs[0].is_mentor, is_mentor)
|
|
self.assertEqual(course_configs[0].has_preview, has_preview)
|
|
self.assertEqual(course_configs[0].session_to_continue_id, str(self.course_session.id))
|
|
self.assertEqual(course_configs[0].role_key, role)
|
|
self.assertEqual(course_configs[0].widgets, widgets)
|
|
|
|
def test_participant_uk_get_config(self):
|
|
participant = create_user("participant")
|
|
add_course_session_user(
|
|
self.course_session,
|
|
participant,
|
|
role=CourseSessionUser.Role.MEMBER,
|
|
)
|
|
self.course.configuration.is_uk = True
|
|
self.course.configuration.save()
|
|
|
|
self._test_config(user=participant, role="Member", is_uk=True, is_vv=False, is_mentor=False, has_preview=False,
|
|
widgets=['ProgressWidget', 'CompetenceWidget', 'CompetenceCertificateWidget'])
|
|
|
|
def test_participant_vv_get_config(self):
|
|
participant = create_user("participant")
|
|
add_course_session_user(
|
|
self.course_session,
|
|
participant,
|
|
role=CourseSessionUser.Role.MEMBER,
|
|
)
|
|
self.course.configuration.is_vv = True
|
|
self.course.configuration.save()
|
|
|
|
self._test_config(user=participant, role="Member", is_uk=False, is_vv=True, is_mentor=False, has_preview=False,
|
|
widgets=['ProgressWidget', 'CompetenceWidget'])
|
|
|
|
def test_mentor_uk_get_config(self):
|
|
# GIVEN
|
|
mentor = create_user("mentor")
|
|
LearningMentor.objects.create(mentor=mentor, course_session=self.course_session)
|
|
|
|
self.course.configuration.is_uk = True
|
|
self.course.configuration.save()
|
|
|
|
self._test_config(user=mentor, role="MentorUK", is_uk=True, is_vv=False, is_mentor=True, has_preview=True,
|
|
widgets=['MentorPersonWidget', 'MentorCompetenceWidget'])
|
|
|
|
def test_mentor_vv_get_config(self):
|
|
# GIVEN
|
|
mentor = create_user("mentor")
|
|
LearningMentor.objects.create(mentor=mentor, course_session=self.course_session)
|
|
|
|
self.course.configuration.is_vv = True
|
|
self.course.configuration.save()
|
|
|
|
self._test_config(user=mentor, role="MentorVV", is_uk=False, is_vv=True, is_mentor=True, has_preview=True,
|
|
widgets=['MentorPersonWidget', 'MentorTasksWidget'])
|
|
|
|
def test_participant_as_mentor_vv_get_config(self):
|
|
# GIVEN
|
|
mentor = create_user("mentor")
|
|
add_course_session_user(
|
|
self.course_session,
|
|
mentor,
|
|
role=CourseSessionUser.Role.MEMBER,
|
|
)
|
|
LearningMentor.objects.create(mentor=mentor, course_session=self.course_session)
|
|
|
|
self.course.configuration.is_vv = True
|
|
self.course.configuration.save()
|
|
|
|
self._test_config(user=mentor, role="Member", is_uk=False, is_vv=True, is_mentor=True, has_preview=False,
|
|
widgets=['ProgressWidget', 'CompetenceWidget', 'MentorPersonWidget', 'MentorTasksWidget'])
|