chore: test notifications are sent

This commit is contained in:
Livio Bieri 2024-02-02 15:15:24 +01:00
parent 844cc881ca
commit 0734894cb9
1 changed files with 39 additions and 7 deletions

View File

@ -1,3 +1,5 @@
from unittest.mock import patch
from django.urls import reverse from django.urls import reverse
from rest_framework.test import APITestCase from rest_framework.test import APITestCase
@ -56,7 +58,10 @@ class SelfEvaluationFeedbackAPI(APITestCase):
learning_mentor.participants.add(member_csu) learning_mentor.participants.add(member_csu)
def test_start_self_evaluation_feedback(self): @patch(
"vbv_lernwelt.notify.services.NotificationService.send_self_evaluation_feedback_request_feedback_notification"
)
def test_start_self_evaluation_feedback(self, mock_notification_service_send):
# GIVEN # GIVEN
learning_unit = create_learning_unit(course=self.course, circle=self.circle) learning_unit = create_learning_unit(course=self.course, circle=self.circle)
@ -98,6 +103,17 @@ class SelfEvaluationFeedbackAPI(APITestCase):
}, },
) )
# shall be idempotent
self.client.post(
reverse(
"start_self_evaluation_feedback",
args=[learning_unit.id],
),
{
"feedback_provider_user_id": self.mentor.id,
},
)
# THEN # THEN
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["success"], True) self.assertEqual(response.data["success"], True)
@ -107,12 +123,14 @@ class SelfEvaluationFeedbackAPI(APITestCase):
1, 1,
) )
# just get the first one self_evaluation_feedback = SelfEvaluationFeedback.objects.first()
f = SelfEvaluationFeedback.objects.first() self.assertEqual(self_evaluation_feedback.feedback_requester_user, self.member)
self.assertEqual(self_evaluation_feedback.feedback_provider_user, self.mentor)
self.assertEqual(self_evaluation_feedback.learning_unit, learning_unit)
self.assertEqual(f.feedback_requester_user, self.member) mock_notification_service_send.assert_called_once_with(
self.assertEqual(f.feedback_provider_user, self.mentor) self_evaluation_feedback=self_evaluation_feedback
self.assertEqual(f.learning_unit, learning_unit) )
def test_start_self_evaluation_feedback_not_allowed_user(self): def test_start_self_evaluation_feedback_not_allowed_user(self):
# GIVEN # GIVEN
@ -370,7 +388,10 @@ class SelfEvaluationFeedbackAPI(APITestCase):
feedback.feedback_assessment, CourseCompletionStatus.FAIL.value feedback.feedback_assessment, CourseCompletionStatus.FAIL.value
) )
def test_release_self_evaluation_feedback(self): @patch(
"vbv_lernwelt.notify.services.NotificationService.send_self_evaluation_feedback_received_notification"
)
def test_release_self_evaluation_feedback(self, mock_notification_service_send):
# GIVEN # GIVEN
learning_unit = create_learning_unit(course=self.course, circle=self.circle) learning_unit = create_learning_unit(course=self.course, circle=self.circle)
self_evaluation_feedback = create_self_evaluation_feedback( self_evaluation_feedback = create_self_evaluation_feedback(
@ -389,6 +410,13 @@ class SelfEvaluationFeedbackAPI(APITestCase):
), ),
) )
# shall be idempotent
response = self.client.put(
reverse(
"release_self_evaluation_feedback", args=[self_evaluation_feedback.id]
),
)
# THEN # THEN
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertEqual(response.data["success"], True) self.assertEqual(response.data["success"], True)
@ -398,3 +426,7 @@ class SelfEvaluationFeedbackAPI(APITestCase):
).feedback_submitted, ).feedback_submitted,
True, True,
) )
mock_notification_service_send.assert_called_once_with(
self_evaluation_feedback=self_evaluation_feedback
)