def test_add_comment_with_empty_comment(self):
        args={
            "user_id": 1,
            "post_id": 1,
            "content": ""
        }

        try:
            Comment.add_comment(**args)
            self.fail("Expect InvalidFieldError")
        except InvalidFieldError:
            pass
    def test_add_comment_invalid_post_id(self):
        args={
            "user_id": 1,
            "post_id": -2,
            "content": "This is my first comment on this page"
        }

        try:
            Comment.add_comment(**args)
            self.fail("Expect InvalidFieldError")
        except InvalidFieldError:
            pass
    def test_add_comment_with_not_exist_post(self):
        args={
            "user_id": 1,
            "post_id": 200,
            "content": "This is my first comment on this page"
        }

        try:
            Comment.add_comment(**args)
            self.fail("Expect PostNotFoundError")
        except PostNotFoundError:
            pass
def add_comment():
    args = {
        "post_id": request.form["post_id"] or None,
        "user_id": current_user.id,
        "content": request.form["comment"] or None,
    }

    try:
        Comment.add_comment(**args)
        if request.form["next"]:
            return redirect(request.form["next"])
        else:
            return redirect("/")
    except:
        abort(400)
    def test_add_comment_ideal_case(self):
        args={
            "user_id": 1,
            "post_id": 2,
            "content": "This is my first comment on this page"
        }

        cm = Comment.add_comment(**args)
        self.assertIsNotNone(cm)

        comment = DBComment.get_by_id(cm.id)
        self.assertIsNotNone(comment)
        self.assertEqual(comment.user_id, args["user_id"])
        self.assertEqual(comment.post_id, args["post_id"])
        self.assertEqual(comment.content, args["content"])