def test_comments_removed_when_graveyarded(test_app): """ Checks comments which are tombstones are removed from collection """ user = fixture_add_user() media = fixture_media_entry(uploader=user.id, expunge=False, fake_upload=False) # Add the TextComment comment = TextComment() comment.actor = user.id comment.content = u"This is a comment that will be deleted." comment.save() # Add a link for the comment link = Comment() link.target = media link.comment = comment link.save() # First double check it's there and all is well... assert Comment.query.filter_by( target_id=link.target_id).first() is not None # Now delete the comment. comment.delete() # Verify this also deleted the Comment link, ergo there is no comment left. assert Comment.query.filter_by(target_id=link.target_id).first() is None
def test_comments_removed_when_graveyarded(test_app): """ Checks comments which are tombstones are removed from collection """ user = fixture_add_user() media = fixture_media_entry( uploader=user.id, expunge=False, fake_upload=False ) # Add the TextComment comment = TextComment() comment.actor = user.id comment.content = u"This is a comment that will be deleted." comment.save() # Add a link for the comment link = Comment() link.target = media link.comment = comment link.save() # First double check it's there and all is well... assert Comment.query.filter_by(target_id=link.target_id).first() is not None # Now delete the comment. comment.delete() # Verify this also deleted the Comment link, ergo there is no comment left. assert Comment.query.filter_by(target_id=link.target_id).first() is None
def fixture_add_comment(author=None, media_entry=None, comment=None): if author is None: author = fixture_add_user().id if media_entry is None: media_entry = fixture_media_entry() if comment is None: comment = \ 'Auto-generated test comment by user #{0} on media #{0}'.format( author, media_entry) text_comment = TextComment( actor=author, content=comment ) text_comment.save() comment_link = Comment() comment_link.target = media_entry comment_link.comment = text_comment comment_link.save() Session.expunge(comment_link) return text_comment
def test_user_deletes_other_comments(test_app): user_a = fixture_add_user(u"chris_a") user_b = fixture_add_user(u"chris_b") media_a = fixture_media_entry(uploader=user_a.id, save=False, expunge=False, fake_upload=False) media_b = fixture_media_entry(uploader=user_b.id, save=False, expunge=False, fake_upload=False) Session.add(media_a) Session.add(media_b) Session.flush() # Create all 4 possible comments: for u in (user_a, user_b): for m in (media_a, media_b): cmt = TextComment() cmt.actor = u.id cmt.content = u"Some Comment" Session.add(cmt) # think i need this to get the command ID Session.flush() link = Comment() link.target = m link.comment = cmt Session.add(link) Session.flush() usr_cnt1 = User.query.count() med_cnt1 = MediaEntry.query.count() cmt_cnt1 = Comment.query.count() User.query.get(user_a.id).delete(commit=False) usr_cnt2 = User.query.count() med_cnt2 = MediaEntry.query.count() cmt_cnt2 = Comment.query.count() # One user deleted assert usr_cnt2 == usr_cnt1 - 1 # One media gone assert med_cnt2 == med_cnt1 - 1 # Three of four comments gone. assert cmt_cnt2 == cmt_cnt1 - 3 User.query.get(user_b.id).delete() usr_cnt2 = User.query.count() med_cnt2 = MediaEntry.query.count() cmt_cnt2 = Comment.query.count() # All users gone assert usr_cnt2 == usr_cnt1 - 2 # All media gone assert med_cnt2 == med_cnt1 - 2 # All comments gone assert cmt_cnt2 == cmt_cnt1 - 4
def fixture_add_comment(author=None, media_entry=None, comment=None): if author is None: author = fixture_add_user().id if media_entry is None: media_entry = fixture_media_entry() if comment is None: comment = \ 'Auto-generated test comment by user #{0} on media #{0}'.format( author, media_entry) text_comment = TextComment(actor=author, content=comment) text_comment.save() comment_link = Comment() comment_link.target = media_entry comment_link.comment = text_comment comment_link.save() Session.expunge(comment_link) return text_comment