from django.test import TestCase from vbv_lernwelt.course.creators.test_utils import ( add_course_session_user, create_course, create_course_session, create_user, ) from vbv_lernwelt.course.models import CourseSessionUser from vbv_lernwelt.iam.permissions import course_session_permissions from vbv_lernwelt.learning_mentor.models import AgentParticipantRelation class ActionTestCase(TestCase): def setUp(self): self.course, _ = create_course("Test Course") self.course_session = create_course_session( course=self.course, title="Test Session" ) def test_course_session_permissions(self): # GIVEN lm = create_user("mentor") participant = create_user("participant") csu = add_course_session_user( self.course_session, participant, role=CourseSessionUser.Role.MEMBER, ) AgentParticipantRelation.objects.create( agent=lm, participant=csu, role="LEARNING_MENTOR" ) trainer = create_user("trainer") add_course_session_user( self.course_session, trainer, role=CourseSessionUser.Role.EXPERT, ) # WHEN mentor_actions = course_session_permissions(lm, self.course_session.id) participant_actions = course_session_permissions( participant, self.course_session.id ) trainer_actions = course_session_permissions(trainer, self.course_session.id) # THEN self.assertEqual( mentor_actions, [ "is_learning_mentor", "learning-mentor", "learning-mentor::guide-members", "preview", ], ) self.assertEqual( participant_actions, [ "is_member", "learning-mentor", "learning-mentor::edit-mentors", "media-library", "appointments", "learning-path", "competence-navi", "complete-learning-content", ], ) self.assertEqual( trainer_actions, [ "is_expert", "learning-mentor", "preview", "media-library", "appointments", "expert-cockpit", "complete-learning-content", ], )