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

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

        resources1 = [{'from_id': 1, 'date': int(time.time()) - 1000}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items', side_effect=lambda **kw: resources1):
            users1 = post.fetch_reposts(all=True)
        state_time1 = post.repost_users.last_update_time()
        state_time_add1 = datetime.fromtimestamp(resources1[0]['date'])

        self.assertEqual(post.repost_users.count(), users1.count())
        self.assertEqual(post.repost_users.count(), 1)
        self.assertItemsEqual(post.repost_users.all(), User.objects.filter(remote_id__in=[1]))

        resources2 = [{'from_id': 2, 'date': int(time.time()) - 500}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items', side_effect=lambda **kw: resources1 + resources2):
            users2 = post.fetch_reposts(all=True)
        state_time2 = post.repost_users.last_update_time()
        state_time_add2 = datetime.fromtimestamp(resources2[0]['date'])

        self.assertEqual(post.repost_users.count(), users2.count())
        self.assertEqual(post.repost_users.count(), 2)
        self.assertItemsEqual(post.repost_users.all(), User.objects.filter(remote_id__in=[1, 2]))

        resources3 = [{'from_id': 3, 'date': int(time.time()) - 100}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items', side_effect=lambda **kw: resources3):
            users3 = post.fetch_reposts(all=True)
        state_time3 = post.repost_users.last_update_time()
        state_time_add3 = datetime.fromtimestamp(resources3[0]['date'])

        self.assertEqual(post.repost_users.count(), users3.count())
        self.assertEqual(post.repost_users.count(), 1)
        self.assertItemsEqual(post.repost_users.all(), User.objects.filter(remote_id__in=[3]))

        self.assertItemsEqual(post.repost_users.were_at(state_time1, only_pk=True), [1])
        self.assertItemsEqual(post.repost_users.were_at(state_time2, only_pk=True), [1, 2])
        self.assertItemsEqual(post.repost_users.were_at(state_time3, only_pk=True), [3])

        self.assertItemsEqual(post.repost_users.added_at(state_time_add1, only_pk=True), [1])
        self.assertItemsEqual(post.repost_users.removed_at(state_time1, only_pk=True), [])

        self.assertItemsEqual(post.repost_users.added_at(state_time_add2, only_pk=True), [2])
        self.assertItemsEqual(post.repost_users.removed_at(state_time2, only_pk=True), [])

        self.assertItemsEqual(post.repost_users.added_at(state_time_add3, only_pk=True), [3])
        self.assertItemsEqual(post.repost_users.removed_at(state_time3, only_pk=True), [1, 2])
Example #2
0
    def test_fetch_group_post_updating_initial_reposts_time_from(self, *args, **kwargs):

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

        post.repost_users.through.objects.bulk_create([post.repost_users.through(user_id=1, post_id=post.pk)])

        self.assertEqual(post.repost_users.through.objects.count(), 1)

        resources = [{'from_id': 1, 'date': int(time.time())}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items', side_effect=lambda **kw: resources):
            post.fetch_reposts(all=True)

        self.assertEqual(post.repost_users.through.objects.count(), 1)
        instance = post.repost_users.through.objects.all()[0]
        self.assertEqual(instance.user_id, 1)
        self.assertEqual(instance.post_id, post.pk)
        self.assertEqual(instance.time_from, datetime.fromtimestamp(resources[0]['date']))
Example #3
0
    def test_fetch_group_post_updating_initial_reposts_time_from(
            self, *args, **kwargs):

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

        post.repost_users.through.objects.bulk_create(
            [post.repost_users.through(user_id=1, post_id=post.pk)])

        self.assertEqual(post.repost_users.through.objects.count(), 1)

        resources = [{'from_id': 1, 'date': int(time.time())}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items',
                        side_effect=lambda **kw: resources):
            post.fetch_reposts(all=True)

        self.assertEqual(post.repost_users.through.objects.count(), 1)
        instance = post.repost_users.through.objects.all()[0]
        self.assertEqual(instance.user_id, 1)
        self.assertEqual(instance.post_id, post.pk)
        self.assertEqual(instance.time_from,
                         datetime.fromtimestamp(resources[0]['date']))
Example #4
0
    def test_fetch_post_reposts(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP_ID)
        post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group)
        users_initial = User.objects.count()

        self.assertEqual(post.repost_users.count(), 0)

        users = post.fetch_reposts(all=True)

        self.assertTrue(post.reposts > 20)
#        self.assertTrue(len(post.reposters) > 20)
        self.assertEqual(post.reposts, users.count())
        self.assertEqual(post.reposts, User.objects.count() - users_initial)
        self.assertEqual(post.reposts, post.repost_users.count())
Example #5
0
    def test_fetch_post_reposts1(self, *args, **kwargs):

        group = GroupFactory(remote_id=36948301)
        post = PostFactory(remote_id='-36948301_23383', wall_owner=group)
        users_initial = User.objects.count()

        self.assertEqual(post.repost_users.count(), 0)

        users = post.fetch_reposts(all=True)

        #        print post.reposts
        self.assertTrue(post.reposts > 120)
        self.assertEqual(post.reposts, users.count())
        self.assertEqual(post.reposts, User.objects.count() - users_initial)
        self.assertEqual(post.reposts, post.repost_users.count())
Example #6
0
    def test_fetch_post_reposts(self, *args, **kwargs):

        group = GroupFactory(remote_id=GROUP_ID)
        post = PostFactory(remote_id=GROUP_POST_ID, wall_owner=group)
        users_initial = User.objects.count()

        self.assertEqual(post.repost_users.count(), 0)

        users = post.fetch_reposts(all=True)

        self.assertTrue(post.reposts > 20)
        #        self.assertTrue(len(post.reposters) > 20)
        self.assertEqual(post.reposts, users.count())
        self.assertEqual(post.reposts, User.objects.count() - users_initial)
        self.assertEqual(post.reposts, post.repost_users.count())
Example #7
0
    def test_fetch_post_reposts1(self, *args, **kwargs):

        group = GroupFactory(remote_id=36948301)
        post = PostFactory(remote_id='-36948301_23383', wall_owner=group)
        users_initial = User.objects.count()

        self.assertEqual(post.repost_users.count(), 0)

        users = post.fetch_reposts(all=True)

#        print post.reposts
        self.assertTrue(post.reposts > 120)
        self.assertEqual(post.reposts, users.count())
        self.assertEqual(post.reposts, User.objects.count() - users_initial)
        self.assertEqual(post.reposts, post.repost_users.count())
Example #8
0
    def test_fetch_group_post_changing_reposts(self, *args, **kwargs):

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

        resources1 = [{'from_id': 1, 'date': int(time.time()) - 1000}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items',
                        side_effect=lambda **kw: resources1):
            users1 = post.fetch_reposts(all=True)
        state_time1 = post.repost_users.last_update_time()
        state_time_add1 = datetime.fromtimestamp(resources1[0]['date'])

        self.assertEqual(post.repost_users.count(), users1.count())
        self.assertEqual(post.repost_users.count(), 1)
        self.assertItemsEqual(post.repost_users.all(),
                              User.objects.filter(remote_id__in=[1]))

        resources2 = [{'from_id': 2, 'date': int(time.time()) - 500}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items',
                        side_effect=lambda **kw: resources1 + resources2):
            users2 = post.fetch_reposts(all=True)
        state_time2 = post.repost_users.last_update_time()
        state_time_add2 = datetime.fromtimestamp(resources2[0]['date'])

        self.assertEqual(post.repost_users.count(), users2.count())
        self.assertEqual(post.repost_users.count(), 2)
        self.assertItemsEqual(post.repost_users.all(),
                              User.objects.filter(remote_id__in=[1, 2]))

        resources3 = [{'from_id': 3, 'date': int(time.time()) - 100}]
        with mock.patch('vkontakte_wall.models.Post.fetch_repost_items',
                        side_effect=lambda **kw: resources3):
            users3 = post.fetch_reposts(all=True)
        state_time3 = post.repost_users.last_update_time()
        state_time_add3 = datetime.fromtimestamp(resources3[0]['date'])

        self.assertEqual(post.repost_users.count(), users3.count())
        self.assertEqual(post.repost_users.count(), 1)
        self.assertItemsEqual(post.repost_users.all(),
                              User.objects.filter(remote_id__in=[3]))

        self.assertItemsEqual(
            post.repost_users.were_at(state_time1, only_pk=True), [1])
        self.assertItemsEqual(
            post.repost_users.were_at(state_time2, only_pk=True), [1, 2])
        self.assertItemsEqual(
            post.repost_users.were_at(state_time3, only_pk=True), [3])

        self.assertItemsEqual(
            post.repost_users.added_at(state_time_add1, only_pk=True), [1])
        self.assertItemsEqual(
            post.repost_users.removed_at(state_time1, only_pk=True), [])

        self.assertItemsEqual(
            post.repost_users.added_at(state_time_add2, only_pk=True), [2])
        self.assertItemsEqual(
            post.repost_users.removed_at(state_time2, only_pk=True), [])

        self.assertItemsEqual(
            post.repost_users.added_at(state_time_add3, only_pk=True), [3])
        self.assertItemsEqual(
            post.repost_users.removed_at(state_time3, only_pk=True), [1, 2])