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()
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