Add learning mentor template test, don't allow invitations in courses without mentors

This commit is contained in:
Christian Cueni 2024-04-18 08:52:34 +02:00
parent bc909ae1b6
commit 1e5db1f0f7
3 changed files with 44 additions and 5 deletions

View File

@ -401,9 +401,9 @@ def command(
if set_only_is_uk_flag:
course.configuration.is_vv = False
course.configuration.enable_learning_mentors = True
course.configuration.enable_learning_mentor = True
else:
course.configuration.is_vv = True
course.configuration.enable_learning_mentors = False
course.configuration.enable_learning_mentor = False
course.configuration.save()

View File

@ -64,7 +64,21 @@ class LearningMentorInvitationTest(APITestCase):
)
@patch("vbv_lernwelt.learning_mentor.views.send_email")
def test_create_invitation(self, mock_send_mail) -> None:
def test_create_invitation_vv(self, mock_send_mail) -> None:
self._test_create_invitation(
EmailTemplate.LEARNING_MENTOR_INVITATION, mock_send_mail
)
@patch("vbv_lernwelt.learning_mentor.views.send_email")
def test_create_invitation_uk(self, mock_send_mail) -> None:
self.course_session.course.configuration.is_uk = True
self.course_session.course.configuration.is_vv = False
self.course_session.course.configuration.save()
self._test_create_invitation(
EmailTemplate.PRAXISBILDNER_INVITATION, mock_send_mail
)
def _test_create_invitation(self, email_template, mock_send_mail) -> None:
# GIVEN
self.client.force_login(self.participant)
add_course_session_user(
@ -92,7 +106,7 @@ class LearningMentorInvitationTest(APITestCase):
mock_send_mail.assert_called_once_with(
recipient_email=email,
template=EmailTemplate.LEARNING_MENTOR_INVITATION,
template=email_template,
template_data={
"inviter_name": f"{self.participant.first_name} {self.participant.last_name}",
"inviter_email": self.participant.email,
@ -102,6 +116,27 @@ class LearningMentorInvitationTest(APITestCase):
fail_silently=True,
)
def test_cannot_create_invitation_if_learning_mentor_disabled(self) -> None:
# GIVEN
self.course_session.course.configuration.enable_learning_mentor = False
self.course_session.course.configuration.save()
self.client.force_login(self.participant)
add_course_session_user(
self.course_session,
self.participant,
role=CourseSessionUser.Role.MEMBER,
)
invite_url = reverse(
"create_invitation", kwargs={"course_session_id": self.course_session.id}
)
email = "test@example.com"
# WHEN
response = self.client.post(invite_url, data={"email": email})
# THEN
self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
def test_list_invitations(self) -> None:
# GIVEN
self.client.force_login(self.participant)

View File

@ -119,7 +119,11 @@ def delete_invitation(request, course_session_id: int, invitation_id: UUID):
def create_invitation(request, course_session_id: int):
user = request.user
course_session = get_object_or_404(CourseSession, id=course_session_id)
course_session = get_object_or_404(
CourseSession,
id=course_session_id,
course__configuration__enable_learning_mentor=True,
)
course_session_user = get_object_or_404(
CourseSessionUser, user=user, course_session=course_session
)