Example #1
0
def test_reply_to_comment_with_invalid_comment_id_returns_exception():
    # Arrange
    user_me = User.objects.create(
        name="Mahesh", profile_pic="*****@*****.**")
    comment_id = 1
    comment_content = "My FIrst Post"

    # Act
    with pytest.raises(InvalidCommentException):
        assert reply_to_comment(user_me.id, comment_id, comment_content)
Example #2
0
def test_reply_to_comment_with_invalid_user_returns_exception():
    # Arrange
    user_id = 1
    comment_id = 1
    reply_content = "My first post"

    # Act
    with pytest.raises(InvalidUserException):
        assert reply_to_comment(
            user_id=user_id, comment_id=comment_id,
            reply_content=reply_content)  # Assert
Example #3
0
def test_reply_to_comment_returns_parent_comment_id(
        user, user2, post, comment):
    # Arrange
    user_id = 2
    comment_id = 1
    reply_content = "Hi"

    # Act
    reply_comment_id = reply_to_comment(
        user_id=user_id, comment_id=comment_id,
        reply_content=reply_content)

    # Assert
    reply_comment = Comment.objects.get(id=reply_comment_id)
    assert reply_comment.parent_comment_id == comment_id
    assert reply_comment.content == reply_content
Example #4
0
def get_reply_to_comment_view(request, comment_id):
    request_serializer = ReplytoCommentRequestSerializer(data=request.data)
    is_valid_data = request_serializer.is_valid()
    if is_valid_data:
        request_object = request_serializer.save()
        try:
            reply_id = reply_to_comment(user_id=request_object.user_id,
                                        comment_id=comment_id,
                                        reply_content=request_object.content)
        except InvalidUserException:
            return Response(status=404)
        except InvalidCommentException:
            return Response(status=404)
        except InvalidReplyContent:
            return Response(status=400)
        response_object = ReplytoCommentResponseclass(reply_id=reply_id)
        response_serializer = ReplytoCommentResponseSerializer(response_object)
        return Response(response_serializer.data, status=201)
def api_wrapper(*args, **kwargs):
    user = kwargs['user']
    comment_id = kwargs['comment_id']
    request_data = kwargs['request_data']
    reply_content = request_data['content']
    
    try:
        reply_id = reply_to_comment(
            user_id=user.id,
            comment_id=comment_id,
            reply_content=reply_content
            )
    except InvalidReplyContent:
        raise BadRequest(*INVALID_REPLY_CONTENT)
    except InvalidCommentException:
        raise BadRequest(*INVALID_COMMENT)
    coment_id_json = json.dumps({"comment_id": reply_id})
    response = HttpResponse(coment_id_json, status=201)
    return response
Example #6
0
def test_reply_to_comment_with_empty_reply_content_returns_exception():
    # Arrange
    user_me = User.objects.create(
        name="Mahesh", profile_pic="*****@*****.**")
    User.objects.create(
        name="you", profile_pic="*****@*****.**")
    Post.objects.create(
        content='Mahesh FIrst',
        posted_at=datetime.now(), posted_by_id=1)
    comment = Comment.objects.create(
        content='comment to post 1',
        commented_at=datetime.now(),
        commented_by_id=2, post_id=1)
    user_id = user_me.id
    comment_id = comment.id
    content = ""

    # Act
    with pytest.raises(InvalidReplyContent):
        assert reply_to_comment(user_id, comment_id, content)
Example #7
0
def test_reply_to_comment_with_parent_comment_id_is_not_none_returns_same_parent_comment_id(
        user, user2, post, comment):
    # Arrange
    reply_comment = Comment.objects.create(
        content='comment to comment 1',
        commented_at=datetime.now(),
        commented_by_id=2, post_id=1, parent_comment_id=1)
    user_id = user.id
    comment_id = reply_comment.id
    reply_content = "reply to reply"
    parent_comment_id = comment.id

    # Act
    new_reply_comment_id = reply_to_comment(
        user_id=user_id, comment_id=comment_id,
        reply_content=reply_content)

    # Assert
    new_reply_comment = Comment.objects.get(id=new_reply_comment_id)
    assert new_reply_comment.parent_comment_id == parent_comment_id
    assert new_reply_comment.content == reply_content