예제 #1
0
    def setUp(self):
        db.app = test_app
        db.create_all()
        user = User()
        user.username = self.username
        user.set_password(self.password)
        db.session.add(user)

        comment = Comment()
        comment.name = self.comment_name
        comment.text = self.comment_text

        tag = Tag()
        tag.title = self.tag_title

        post = Post()
        post.title = self.post_title
        post.text = self.post_text
        post.publish_date = self.post_publish_date

        # add relationships to other tables
        post.user = user
        post.tags = [tag]
        post.comments = [comment]

        db.session.add(user)
        db.session.add(comment)
        db.session.add(tag)
        db.session.add(post)
        db.session.commit()
예제 #2
0
    def post(self, post_id=None):
        if post_id:
            abort(400)
        else:
            args = post_post_parser.parse_args(strict=True)
            username = args['username']
            password = args['password']
            user = User.query.filter_by(username=username).first()

            if not user:
                abort(401)

            if not user.check_password(password):
                abort(401)

            new_post = Post()
            new_post.user_id = user.id
            new_post.title = args['title']
            new_post.publish_date = datetime.datetime.now()
            new_post.text = args['text']

            if args['tags']:
                for t_title in args['tags']:
                    tag = Tag.query.filter_by(title=t_title).first()

                    # Add the tag if it exists. If not make a new tag.
                    if tag:
                        new_post.tags.append(tag)
                    else:
                        new_tag = Tag()
                        new_tag.title = t_title
                        new_post.tags.append(new_tag)

            db.session.add(new_post)
            db.session.commit()
            return new_post.id, 201