Example #1
0
    def test_fetch_post_likes_parser(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP_ID)
        post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group)

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(post.likes, 0)

        post.fetch_likes(source='parser')
        self.assertTrue(post.likes > 120)
        self.assertEqual(post.likes, post.like_users.count())
Example #2
0
    def test_fetch_post_likes_parser(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP_ID)
        post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group)

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(post.likes, 0)

        post.fetch_likes(source='parser')
        self.assertTrue(post.likes > 120)
        self.assertEqual(post.likes, post.like_users.count())
Example #3
0
    def test_fetch_group_post_changing_likes(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP2_ID)
        post = PostFactory(remote_id=GROUP2_POST_WITH_MANY_LIKES_ID, wall_owner=group)

        ids1 = range(100, 200)
        with mock.patch('vkontakte_users.models.User.remote.fetch_likes_user_ids', side_effect=lambda **kw: ids1):
            users1 = post.fetch_likes(all=True)
        state_time1 = post.like_users.last_update_time()

        self.assertEqual(post.like_users.count(), users1.count())
        self.assertEqual(post.like_users.count(), len(ids1))
        self.assertItemsEqual(post.like_users.all(), User.objects.filter(remote_id__in=ids1))

        ids2 = range(50, 150)
        with mock.patch('vkontakte_users.models.User.remote.fetch_likes_user_ids', side_effect=lambda **kw: ids2):
            users2 = post.fetch_likes(all=True)
        state_time2 = post.like_users.last_update_time()

        self.assertEqual(post.like_users.count(), users2.count())
        self.assertEqual(post.like_users.count(), len(ids2))
        self.assertItemsEqual(post.like_users.all(), User.objects.filter(remote_id__in=ids2))

        ids3 = range(0, 30)
        with mock.patch('vkontakte_users.models.User.remote.fetch_likes_user_ids', side_effect=lambda **kw: ids3):
            users3 = post.fetch_likes(all=True)
        state_time3 = post.like_users.last_update_time()

        self.assertEqual(post.like_users.count(), users3.count())
        self.assertEqual(post.like_users.count(), len(ids3))
        self.assertItemsEqual(post.like_users.all(), User.objects.filter(remote_id__in=ids3))

        self.assertItemsEqual(post.like_users.were_at(state_time1, only_pk=True), ids1)
        self.assertItemsEqual(post.like_users.were_at(state_time2, only_pk=True), ids2)
        self.assertItemsEqual(post.like_users.were_at(state_time3, only_pk=True), ids3)

        self.assertItemsEqual(post.like_users.added_at(state_time2, only_pk=True), range(50, 100))
        self.assertItemsEqual(post.like_users.removed_at(state_time2, only_pk=True), range(150, 200))

        self.assertItemsEqual(post.like_users.added_at(state_time3, only_pk=True), range(0, 30))
        self.assertItemsEqual(post.like_users.removed_at(state_time3, only_pk=True), range(50, 150))
Example #4
0
    def test_fetch_post_likes(self):

        post = PostFactory(graph_id=POST_WITH_MANY_LIKES_ID)

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(User.objects.count(), 1)

        users = post.fetch_likes(all=True)
        self.assertTrue(users.count() > 1000)
        self.assertEqual(post.likes_count, users.count())
        self.assertEqual(post.likes_count, User.objects.count() - 1)
        self.assertEqual(post.likes_count, post.like_users.count())
Example #5
0
    def test_fetch_group_post_many_likes(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP2_ID)
        post = PostFactory(remote_id=GROUP2_POST_WITH_MANY_LIKES_ID, wall_owner=group)
        users_initial = User.objects.count()

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(post.likes, 0)

        users = post.fetch_likes(all=True)

        self.assertTrue(post.likes > 3800)
        self.assertEqual(post.likes, len(users))
        self.assertEqual(post.likes, User.objects.count() - users_initial)
        self.assertEqual(post.likes, post.like_users.count())
Example #6
0
    def test_fetch_group_post_likes(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP_ID)
        post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group)

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(post.likes, 0)

        users_initial = User.objects.count()
        users = post.fetch_likes(all=True)

        self.assertTrue(post.likes > 120)
        self.assertEqual(post.likes, len(users))
        self.assertEqual(post.likes, User.objects.count() - users_initial)
        self.assertEqual(post.likes, post.like_users.count())

        # try to fetch again
        likes = post.likes
        users = post.fetch_likes(all=True)

        self.assertEqual(post.likes, likes)
        self.assertEqual(post.likes, len(users))
        self.assertEqual(post.likes, User.objects.count() - users_initial)
        self.assertEqual(post.likes, post.like_users.count())
Example #7
0
    def test_fetch_group_post_likes(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP_ID)
        post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group)

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(post.likes, 0)

        users_initial = User.objects.count()
        users = post.fetch_likes(all=True)

        self.assertTrue(post.likes > 120)
        self.assertEqual(post.likes, len(users))
        self.assertEqual(post.likes, User.objects.count() - users_initial)
        self.assertEqual(post.likes, post.like_users.count())

        # try to fetch again
        likes = post.likes
        users = post.fetch_likes(all=True)

        self.assertEqual(post.likes, likes)
        self.assertEqual(post.likes, len(users))
        self.assertEqual(post.likes, User.objects.count() - users_initial)
        self.assertEqual(post.likes, post.like_users.count())
Example #8
0
    def test_fetch_group_post_many_likes(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP2_ID)
        post = PostFactory(remote_id=GROUP2_POST_WITH_MANY_LIKES_ID,
                           wall_owner=group)
        users_initial = User.objects.count()

        self.assertEqual(post.like_users.count(), 0)
        self.assertEqual(post.likes, 0)

        users = post.fetch_likes(all=True)

        self.assertTrue(post.likes > 3800)
        self.assertEqual(post.likes, len(users))
        self.assertEqual(post.likes, User.objects.count() - users_initial)
        self.assertEqual(post.likes, post.like_users.count())
Example #9
0
    def test_fetch_group_post_changing_likes(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP2_ID)
        post = PostFactory(remote_id=GROUP2_POST_WITH_MANY_LIKES_ID,
                           wall_owner=group)

        ids1 = range(100, 200)
        with mock.patch(
                'vkontakte_users.models.User.remote.fetch_likes_user_ids',
                side_effect=lambda **kw: ids1):
            users1 = post.fetch_likes(all=True)
        state_time1 = post.like_users.last_update_time()

        self.assertEqual(post.like_users.count(), users1.count())
        self.assertEqual(post.like_users.count(), len(ids1))
        self.assertItemsEqual(post.like_users.all(),
                              User.objects.filter(remote_id__in=ids1))

        ids2 = range(50, 150)
        with mock.patch(
                'vkontakte_users.models.User.remote.fetch_likes_user_ids',
                side_effect=lambda **kw: ids2):
            users2 = post.fetch_likes(all=True)
        state_time2 = post.like_users.last_update_time()

        self.assertEqual(post.like_users.count(), users2.count())
        self.assertEqual(post.like_users.count(), len(ids2))
        self.assertItemsEqual(post.like_users.all(),
                              User.objects.filter(remote_id__in=ids2))

        ids3 = range(0, 30)
        with mock.patch(
                'vkontakte_users.models.User.remote.fetch_likes_user_ids',
                side_effect=lambda **kw: ids3):
            users3 = post.fetch_likes(all=True)
        state_time3 = post.like_users.last_update_time()

        self.assertEqual(post.like_users.count(), users3.count())
        self.assertEqual(post.like_users.count(), len(ids3))
        self.assertItemsEqual(post.like_users.all(),
                              User.objects.filter(remote_id__in=ids3))

        self.assertItemsEqual(
            post.like_users.were_at(state_time1, only_pk=True), ids1)
        self.assertItemsEqual(
            post.like_users.were_at(state_time2, only_pk=True), ids2)
        self.assertItemsEqual(
            post.like_users.were_at(state_time3, only_pk=True), ids3)

        self.assertItemsEqual(
            post.like_users.added_at(state_time2, only_pk=True),
            range(50, 100))
        self.assertItemsEqual(
            post.like_users.removed_at(state_time2, only_pk=True),
            range(150, 200))

        self.assertItemsEqual(
            post.like_users.added_at(state_time3, only_pk=True), range(0, 30))
        self.assertItemsEqual(
            post.like_users.removed_at(state_time3, only_pk=True),
            range(50, 150))