84 lines
2.4 KiB
Python
84 lines
2.4 KiB
Python
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",
|
|
],
|
|
)
|