From 0734894cb96e2e46d93ffd87aeefa2fcc24966fa Mon Sep 17 00:00:00 2001 From: Livio Bieri Date: Fri, 2 Feb 2024 15:15:24 +0100 Subject: [PATCH] chore: test notifications are sent --- .../tests/test_api.py | 46 ++++++++++++++++--- 1 file changed, 39 insertions(+), 7 deletions(-) diff --git a/server/vbv_lernwelt/self_evaluation_feedback/tests/test_api.py b/server/vbv_lernwelt/self_evaluation_feedback/tests/test_api.py index fde8f288..a7e2544b 100644 --- a/server/vbv_lernwelt/self_evaluation_feedback/tests/test_api.py +++ b/server/vbv_lernwelt/self_evaluation_feedback/tests/test_api.py @@ -1,3 +1,5 @@ +from unittest.mock import patch + from django.urls import reverse from rest_framework.test import APITestCase @@ -56,7 +58,10 @@ class SelfEvaluationFeedbackAPI(APITestCase): 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 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 self.assertEqual(response.status_code, 200) self.assertEqual(response.data["success"], True) @@ -107,12 +123,14 @@ class SelfEvaluationFeedbackAPI(APITestCase): 1, ) - # just get the first one - f = SelfEvaluationFeedback.objects.first() + self_evaluation_feedback = 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) - self.assertEqual(f.feedback_provider_user, self.mentor) - self.assertEqual(f.learning_unit, learning_unit) + mock_notification_service_send.assert_called_once_with( + self_evaluation_feedback=self_evaluation_feedback + ) def test_start_self_evaluation_feedback_not_allowed_user(self): # GIVEN @@ -370,7 +388,10 @@ class SelfEvaluationFeedbackAPI(APITestCase): 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 learning_unit = create_learning_unit(course=self.course, circle=self.circle) 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 self.assertEqual(response.status_code, 200) self.assertEqual(response.data["success"], True) @@ -398,3 +426,7 @@ class SelfEvaluationFeedbackAPI(APITestCase): ).feedback_submitted, True, ) + + mock_notification_service_send.assert_called_once_with( + self_evaluation_feedback=self_evaluation_feedback + )