def test_that_only_one_entry_created_for_one_review(self): self.assertEqual(LogEntry.objects.count(), 0) review1 = RecruitProjectReviewFactory() creators.log_project_competence_review_done(review1) creators.log_project_competence_review_done(review1) self.assertEqual(LogEntry.objects.count(), 1) review2 = RecruitProjectReviewFactory() creators.log_project_competence_review_done(review2) creators.log_project_competence_review_done(review2) self.assertEqual(LogEntry.objects.count(), 2)
def add_review(self, request, pk=None): card = self.get_object() serializer = self.get_serializer(data=request.data) if serializer.is_valid(): if card.content_item.content_type == models.ContentItem.PROJECT: if card.recruit_project == None: raise Http404 review = models.RecruitProjectReview.objects.create( status=serializer.data["status"], timestamp=timezone.now(), comments=serializer.data["comments"], recruit_project=card.recruit_project, reviewer_user=request.user, ) log_creators.log_project_competence_review_done(review) elif card.content_item.content_type == models.ContentItem.TOPIC: if card.topic_progress == None: raise Http404 review = models.TopicReview.objects.create( status=serializer.data["status"], timestamp=timezone.now(), comments=serializer.data["comments"], topic_progress=card.topic_progress, reviewer_user=request.user, ) log_creators.log_topic_competence_review_done(review) card.refresh_from_db() if card.status == models.AgileCard.REVIEW_FEEDBACK: log_creators.log_card_moved_to_review_feedback( card, request.user) elif card.status == models.AgileCard.COMPLETE: log_creators.log_card_moved_to_complete(card, request.user) return Response(serializers.AgileCardSerializer(card).data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def test_log_topic_creator_is_invoked_for_a_topic_review_else_attribute_error_is_raised( self, ): review1 = TopicReviewFactory() with self.assertRaises(AttributeError) as exception: creators.log_project_competence_review_done(review1) self.assertEqual(LogEntry.objects.count(), 0)
def test_that_timestamp_properly_set(self): review = RecruitProjectReviewFactory() creators.log_project_competence_review_done(review) self.assertEqual(LogEntry.objects.first().timestamp, review.timestamp)