vbv/server/vbv_lernwelt/iam/tests/test_roles.py

79 lines
2.1 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.course_session_group.models import CourseSessionGroup
from vbv_lernwelt.iam.permissions import has_role_in_course
from vbv_lernwelt.learning_mentor.models import LearningMentor
class RoleTestCase(TestCase):
def setUp(self):
self.course, _ = create_course("Test Course")
self.course_session = create_course_session(
course=self.course, title="Test Session"
)
self.user = create_user("user")
def test_has_role_regional(self):
# GIVEN
csg = CourseSessionGroup.objects.create(name="Test Group", course=self.course)
csg.supervisor.add(self.user)
# WHEN
has_role = has_role_in_course(user=self.user, course=self.course)
# THEN
self.assertTrue(has_role)
def test_has_role_course_session(self):
# GIVEN
add_course_session_user(
self.course_session,
self.user,
role=CourseSessionUser.Role.MEMBER,
)
# WHEN
has_role = has_role_in_course(user=self.user, course=self.course)
# THEN
self.assertTrue(has_role)
def test_has_role_mentor(self):
# GIVEN
LearningMentor.objects.create(
mentor=self.user,
course=self.course,
)
# WHEN
has_role = has_role_in_course(user=self.user, course=self.course)
# THEN
self.assertTrue(has_role)
def test_no_role(self):
# GIVEN
other_course, _ = create_course("Other Test Course")
other_course_session = create_course_session(
course=other_course, title="Other Test Session"
)
add_course_session_user(
other_course_session,
self.user,
role=CourseSessionUser.Role.MEMBER,
)
# WHEN
has_role = has_role_in_course(user=self.user, course=self.course)
# THEN
self.assertFalse(has_role)