def test_react_to_post_create_reaction_for_the_post(users_data, posts_data): # Arrange user_id = 4 post_id = 2 reaction_type = "HAHA" # Act react_to_post(user_id, post_id, reaction_type) # Assert react = Reaction.objects.get(id=1) assert react.reaction == reaction_type assert react.reacted_by_id == user_id assert react.post_id == post_id
def api_wrapper(*args, **kwargs): user = kwargs['user'] post_id = kwargs['post_id'] request_data = kwargs['request_data'] reaction_type = request_data['reaction_type'] try: react_to_post(user_id=user.id, post_id=post_id, reaction_type=reaction_type) except InvalidReactionTypeException: raise BadRequest(*INVALID_REACTION_TYPE) except InvalidPostException: raise BadRequest(*INVALID_POST) return HttpResponse(status=200)
def test_react_to_post_for_the_second_time_with_same_reaction_type_deletes_reaction( users_data, posts_data, comments_data, reactions_data): # Arrange user_id = 3 post_id = 2 reaction_type = "ANGRY" false = False # Act react_to_post(user_id=user_id, post_id=post_id, reaction_type=reaction_type) # Assert assert Reaction.objects.filter(reacted_by_id=user_id, post_id=post_id, reaction=reaction_type).exists() == false
def get_react_to_post_view(request, post_id): request_serializer = ReacttoPostRequestSerializer(data=request.data) is_valid_data = request_serializer.is_valid() if is_valid_data: request_object = request_serializer.save() try: react_to_post( user_id=request_object.user_id, post_id=post_id, reaction_type=request_object.reaction_type ) except InvalidUserException: return Response(status=404) except InvalidPostException: return Response(status=404) except InvalidReactionTypeException: return Response(status=400) return Response(status=200)
def test_react_to_post_for_the_second_time_with_another_reaction_type_updates_reaction( users_data, posts_data, comments_data, reactions_data, reactions_type): # Arrange user_id = 1 post_id = 1 reaction_type = reactions_type # Act react_to_post(user_id=user_id, post_id=post_id, reaction_type=reaction_type) # Assert reaction = Reaction.objects.get(reacted_by_id=user_id, post_id=post_id, reaction=reaction_type) assert reaction.reaction == reaction_type assert reaction.reacted_by_id == user_id assert reaction.post_id == post_id
def test_react_to_post_with_invalid_post_returns_exception(user): # Arrange post_id = 1 reaction_type = "ANGRY" # Act with pytest.raises(InvalidPostException): assert react_to_post(user_id=user.id, post_id=post_id, reaction_type=reaction_type)
def test_react_to_post_with_invalid_reaction_type_returns_exception( user, user2, post): # Arrange user_id = 2 post_id = 1 reaction_type = "SMILE" # Act with pytest.raises(InvalidReactionTypeException): assert react_to_post(user_id=user_id, post_id=post_id, reaction_type=reaction_type)