Esempio n. 1
0
    def test_slug(self):
        """Test slugyfing"""

        post = Post(title="Test - .+?=~! the post 123")
        post.generate_slug()

        self.assertEqual("test-the-post-123", post.slug)
Esempio n. 2
0
    def test_comment_like(self):
        """Test liking"""

        user_id = create_user()

        comment = Comment(body="Test comment")
        post = Post(title="Test dislike")
        post.comments.append(comment)

        db.session.add_all([post, comment])
        db.session.commit()

        self.assertEqual((0, 0),
                         (comment.likes_count(), comment.dislikes_count()))

        comment.like(user_id)

        self.assertEqual(True,
                         comment.marks.filter_by(user_id=user_id).one().sign)

        self.assertEqual((1, 0),
                         (comment.likes_count(), comment.dislikes_count()))

        comment.like(user_id)

        self.assertEqual((0, 0),
                         (comment.likes_count(), comment.dislikes_count()))
Esempio n. 3
0
def create_post(data: dict) -> Post:
    """
    Create a new post
    :param data: Fields of new record
    :type data: dict
    :return: Created post model
    :rtype: Post
    """

    post = Post(**data)
    post.user_id = current_user.id
    post.generate_slug()

    save_changes(obj=post)

    return post
Esempio n. 4
0
def create_post():
    """Create post"""

    form = PostForm()

    if request.method == "POST" and form.validate_on_submit():
        post = Post()
        form.populate_obj(post)
        post.user_id = current_user.id
        post.generate_slug()
        db.session.add(post)
        db.session.commit()
        flash("You're successfully create the post")
        return redirect(url_for("post.view_post", slug=post.slug))

    return render_template("post/form.html", form=form,
                           title="Create a new post")
Esempio n. 5
0
    def test_post_change_sign(self):
        """Test change of mark's sign"""

        user_id = create_user()

        post = Post(title="Test dislike")

        db.session.add(post)
        db.session.commit()

        post.like(user_id)

        self.assertEqual((1, 0), (post.likes_count(), post.dislikes_count()))

        post.dislike(user_id)

        self.assertEqual((0, 1), (post.likes_count(), post.dislikes_count()))
Esempio n. 6
0
    def test_slug_unique(self):
        """"""

        post1 = Post(title="Test unique slug")
        post1.generate_slug()

        db.session.add(post1)
        db.session.commit()

        post2 = Post(title="Test unique slug")
        post2.generate_slug()

        self.assertEqual("test-unique-slug-1", post2.slug)
Esempio n. 7
0
    def test_comment_change_sign(self):
        """Test change of mark's sign"""

        user_id = create_user()

        comment = Comment(body="Test comment")
        post = Post(title="Test dislike")
        post.comments.append(comment)

        db.session.add_all([post, comment])
        db.session.commit()

        comment.like(user_id)

        self.assertEqual((1, 0),
                         (comment.likes_count(), comment.dislikes_count()))

        comment.dislike(user_id)

        self.assertEqual((0, 1),
                         (comment.likes_count(), comment.dislikes_count()))
Esempio n. 8
0
    def test_post_dislike(self):
        """Test disliking"""

        user_id = create_user()

        post = Post(title="Test dislike")

        db.session.add(post)
        db.session.commit()

        self.assertEqual((0, 0), (post.likes_count(), post.dislikes_count()))

        post.dislike(user_id)

        self.assertEqual(False,
                         post.marks.filter_by(user_id=user_id).one().sign)

        self.assertEqual((0, 1), (post.likes_count(), post.dislikes_count()))

        post.dislike(user_id)

        self.assertEqual((0, 0), (post.likes_count(), post.dislikes_count()))