def test_fetch_post_comments(self): post = PostFactory(graph_id=POST_WITH_MANY_COMMENTS_ID) self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(limit=100) self.assertEqual(comments.count(), 100) self.assertEqual(comments.count(), Comment.objects.count()) self.assertEqual(comments.count(), post.comments.count()) comments = post.fetch_comments(all=True) self.assertTrue(post.comments_count > 1000) self.assertEqual(post.comments_count, Comment.objects.count()) self.assertEqual(post.comments_count, comments.count()) self.assertEqual(post.comments_count, post.comments.count()) comment = comments.get(graph_id=COMMENT1_ID) user = User.objects.get(graph_id='100000422272038') self.assertEqual(user.name, 'Jordan Alvarez') self.assertEqual(comment.post, post) self.assertEqual(comment.author, user) self.assertEqual(comment.message, 'PLAYDOM? bahhhhhhhhh ZYNGA RULES!') self.assertEqual(comment.can_remove, False) self.assertEqual(comment.user_likes, False) self.assertTrue(isinstance(comment.created_time, datetime)) self.assertTrue(comment.likes_count > 5)
def test_fetch_group_post_comments(self, *args, **kwargs): group = GroupFactory(remote_id=GROUP_ID, screen_name=GROUP_SCREEN_NAME) post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group) self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', count=90) self.assertTrue(len(comments) == Comment.objects.count() == post.wall_comments.count() == 90) self.assertEqual(comments[0].post, post) self.assertEqual(comments[0].wall_owner, group) # testing `after` parameter after = Comment.objects.order_by('date')[0].date Comment.objects.all().delete() self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', after=after, count=100) self.assertTrue(len(comments) == Comment.objects.count() == post.wall_comments.count() == 90) # testing `before` parameter before = Comment.objects.order_by('-date')[5].date Comment.objects.all().delete() self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', before=before, after=after) self.assertTrue(len(comments) == Comment.objects.count() == 85) # testing `after` and `all` parameters Comment.objects.all().delete() self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', after=after, all=True) self.assertTrue(len(comments) == Comment.objects.count() == post.wall_comments.count() == 90)
def test_fetch_user_post_comments(self): owner = UserFactory(remote_id=USER_ID) post = PostFactory(remote_id=POST_ID, wall_owner=owner, author=owner) self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments() self.assertTrue(len(comments) > 0) self.assertEqual(Comment.objects.count(), len(comments)) self.assertEqual(comments[0].post, post) post.fetch_comments(all=True)
def test_fetch_group_post_comments_bad_unicode(self, *args, **kwargs): # http://vk.com/wall-23482909_195292 # UnicodeDecodeError: 'utf8' codec can't decode byte 0xca in position 0: invalid continuation byte group = GroupFactory(remote_id=23482909) post = PostFactory(remote_id='-23482909_195292', wall_owner=group) comments = post.fetch_comments(sort='desc', count=100) self.assertTrue(comments.count() > 0) # http://vk.com/wall-41330561_73352 # UnicodeDecodeError: 'utf8' codec can't decode byte 0xd3 in position 0: invalid continuation byte group = GroupFactory(remote_id=41330561) post = PostFactory(remote_id='-41330561_73352', wall_owner=group) comments = post.fetch_comments(sort='desc', count=100) self.assertTrue(comments.count() > 0)
def test_fetch_group_post_comments(self, *args, **kwargs): group = GroupFactory(remote_id=GROUP_ID, screen_name=GROUP_SCREEN_NAME) post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group) self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', count=90) self.assertTrue( len(comments) == Comment.objects.count() == post.wall_comments.count() == 90) self.assertEqual(comments[0].post, post) self.assertEqual(comments[0].wall_owner, group) # testing `after` parameter after = Comment.objects.order_by('date')[0].date Comment.objects.all().delete() self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', after=after, count=100) self.assertTrue( len(comments) == Comment.objects.count() == post.wall_comments.count() == 90) # testing `before` parameter before = Comment.objects.order_by('-date')[5].date Comment.objects.all().delete() self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', before=before, after=after) self.assertTrue(len(comments) == Comment.objects.count() == 85) # testing `after` and `all` parameters Comment.objects.all().delete() self.assertEqual(Comment.objects.count(), 0) comments = post.fetch_comments(sort='desc', after=after, all=True) self.assertTrue( len(comments) == Comment.objects.count() == post.wall_comments.count() == 90)
def test_fetch_post_comments_recursive_calls_ammount(self, fetch_method, *args, **kwargs): group = GroupFactory(remote_id=GROUP_ID) post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group) comments = post.fetch_comments(sort='desc', all=True) self.assertTrue(len(comments) > 105) self.assertEqual(fetch_method.called, True) self.assertEqual(fetch_method.call_count, 2) self.assertEqual(fetch_method.call_args_list[0][1]['offset'], 0) self.assertEqual(fetch_method.call_args_list[1][1]['offset'], 100)
def test_fetch_post_comments_recursive_calls_ammount( self, fetch_method, *args, **kwargs): group = GroupFactory(remote_id=GROUP_ID) post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group) comments = post.fetch_comments(sort='desc', all=True) self.assertTrue(len(comments) > 105) self.assertEqual(fetch_method.called, True) self.assertEqual(fetch_method.call_count, 2) self.assertEqual(fetch_method.call_args_list[0][1]['offset'], 0) self.assertEqual(fetch_method.call_args_list[1][1]['offset'], 100)