67 lines
1.8 KiB
Python
67 lines
1.8 KiB
Python
from django.test import TestCase
|
|
|
|
from vbv_lernwelt.course.creators.test_utils import (
|
|
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 is_course_session_expert
|
|
|
|
|
|
class ExpertTestCase(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_member(self):
|
|
# GIVEN
|
|
csu = CourseSessionUser.objects.create(
|
|
course_session=self.course_session,
|
|
user=self.user,
|
|
role=CourseSessionUser.Role.MEMBER,
|
|
)
|
|
|
|
# WHEN
|
|
is_expert = is_course_session_expert(
|
|
user=csu.user, course_session_id=self.course_session.id
|
|
)
|
|
|
|
# THEN
|
|
self.assertFalse(is_expert)
|
|
|
|
def test_supervisor(self):
|
|
# GIVEN
|
|
csg = CourseSessionGroup.objects.create(name="Test Group", course=self.course)
|
|
csg.course_session.add(self.course_session)
|
|
csg.supervisor.add(self.user)
|
|
|
|
# WHEN
|
|
is_expert = is_course_session_expert(
|
|
user=self.user, course_session_id=self.course_session.id
|
|
)
|
|
|
|
# THEN
|
|
self.assertTrue(is_expert)
|
|
|
|
def test_expert(self):
|
|
# GIVEN
|
|
csu = CourseSessionUser.objects.create(
|
|
course_session=self.course_session,
|
|
user=self.user,
|
|
role=CourseSessionUser.Role.EXPERT,
|
|
)
|
|
|
|
# WHEN
|
|
is_expert = is_course_session_expert(
|
|
user=csu.user, course_session_id=self.course_session.id
|
|
)
|
|
|
|
# THEN
|
|
self.assertTrue(is_expert)
|