Exemplo n.º 1
0
    def test_fetch_group_wall(self):

        group = GroupFactory.create(remote_id=GROUP_ID, screen_name=GROUP_SCREEN_NAME)

        self.assertEqual(Post.objects.count(), 0)

        posts = group.fetch_posts(count=10)

        self.assertEqual(posts[0].wall_owner, group)
        self.assertTrue(len(posts) == Post.objects.count() == 10)
        self.assertTrue(isinstance(posts[0].date, datetime))
        self.assertTrue(posts[0].likes + posts[1].likes > 0)
        self.assertTrue(posts[0].comments + posts[1].comments > 0)
        self.assertTrue(len(posts[0].text) > 0)

        # testing `after` parameter
        after = Post.objects.order_by('date')[0].date

        Post.objects.all().delete()
        self.assertEqual(Post.objects.count(), 0)

        posts = group.fetch_posts(after=after)
        self.assertTrue(len(posts) == Post.objects.count() == 10)

        # testing `after` and `all` parameters and returning less than all scope of posts
        Post.objects.all().delete()
        self.assertEqual(Post.objects.count(), 0)

        group.fetch_posts(count=30)
        posts = group.fetch_posts(after=after, all=True)
        self.assertEqual(Post.objects.count(), 30)
        self.assertEqual(len(posts), 10)
Exemplo n.º 2
0
    def test_parse_comments(self):

        response = '''{"response":[6,
            {"cid":2505,"uid":16271479,"date":1298365200,"text":"Добрый день , кароче такая идея когда опросы создаешь вместо статуса - можно выбрать аудитории опрашиваемых, например только женский или мужской пол могут участвовать (то бишь голосовать в опросе)."},
            {"cid":2507,"uid":16271479,"date":1286105582,"text":"Это уже не практично, имхо.<br>Для этого делайте группу и там опрос, а в группу принимайте тех, кого нужно.","reply_to_uid":16271479,"reply_to_cid":2505},
            {"cid":2547,"uid":2943,"date":1286218080,"text":"Он будет только для групп благотворительных организаций."}]}
            '''
        group = GroupFactory.create(remote_id=OWNER_ID)
        post = PostFactory.create(remote_id=TR_POST_ID, wall_owner=group)
        instance = CommentFactory.create(post=post)
        author = UserFactory.create(remote_id=16271479)
        instance.parse(json.loads(response)['response'][1])
        instance.save()

        self.assertEqual(instance.remote_id, '201164356_2505')
        self.assertEqual(instance.text, u'Добрый день , кароче такая идея когда опросы создаешь вместо статуса - можно выбрать аудитории опрашиваемых, например только женский или мужской пол могут участвовать (то бишь голосовать в опросе).')
        self.assertEqual(instance.author, author)
        self.assertTrue(isinstance(instance.date, datetime))

        instance = Comment(post=post)
        instance.parse(json.loads(response)['response'][2])
        instance.save()

        self.assertEqual(instance.remote_id, '201164356_2507')
        self.assertEqual(instance.reply_for.remote_id, 16271479)
Exemplo n.º 3
0
    def test_fetch_group_post_comments(self, *args, **kwargs):
        group = GroupFactory.create(remote_id=GROUP_ID, screen_name=GROUP_SCREEN_NAME)
        post = PostFactory.create(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 `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)
Exemplo n.º 4
0
    def test_raise_users_exception(self):

        group = GroupFactory.create(remote_id=GROUP_ID)
        try:
            group.users
            assert False
        except ImproperlyConfigured, e:
            pass
Exemplo n.º 5
0
 def test_post_prepare_delete_restore_params(self):
     group = GroupFactory.create(remote_id=OWNER_ID)
     post = PostFactory.create(remote_id='%s_17' % OWNER_ID, wall_owner=group)
     expected_params = {
         'owner_id': OWNER_ID,
         'post_id': '17',
     }
     self.assertEqual(post.prepare_delete_restore_params(), expected_params)
Exemplo n.º 6
0
    def test_fetch_post_reposts(self, *args, **kwargs):

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

        self.assertTrue(post.repost_users.count() == 0)
        users = post.fetch_reposts(all=True)
        self.assertTrue(post.reposts >= 20)
        self.assertTrue(post.reposts == post.repost_users.count() == users.count())

        group = GroupFactory.create(remote_id=36948301)
        post = PostFactory.create(remote_id='-36948301_13599', wall_owner=group)

        self.assertTrue(post.reposts == post.repost_users.count() == 0)
        users = post.fetch_reposts(all=True)
        self.assertTrue(post.reposts == 1)
        self.assertTrue(post.reposts == post.repost_users.count() == users.count())
Exemplo n.º 7
0
    def test_fetch_group_open_wall(self):

        group = GroupFactory.create(remote_id=OPEN_WALL_GROUP_ID, screen_name=OPEN_WALL_GROUP_SCREEN_NAME)

        self.assertEqual(Post.objects.count(), 0)
        self.assertEqual(User.objects.count(), 0)

        count = 10
        posts = group.fetch_posts(own=0, count=count, extended=1)

        self.assertEqual(len(posts), count)
        self.assertEqual(Post.objects.count(), count)
        self.assertTrue(User.objects.count() > 0)
        self.assertTrue(Post.objects.exclude(author_id=None).count() > 0)
Exemplo n.º 8
0
    def test_fetch_post_likes(self, *args, **kwargs):

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

        self.assertTrue(post.likes == post.like_users.count() == 0)

        post.fetch_likes(source='parser')
        self.assertTrue(post.likes == post.like_users.count() > 120)

        post.like_users.all().delete()
        post.likes = 0
        post.save()
        self.assertTrue(post.likes == post.like_users.count() == 0)

        post.fetch_likes(all=True)
        self.assertTrue(post.likes == post.like_users.count() > 120)
Exemplo n.º 9
0
 def test_post_prepare_update_params(self):
     group = GroupFactory.create(remote_id=OWNER_ID)
     post = PostFactory.create(remote_id='%s_17' % OWNER_ID, wall_owner=group)
     update_text = 'update text'
     expected_config = {
         'owner_id': OWNER_ID,
         'friends_only': 0,
         'from_group': '',
         'message': update_text,
         'attachments': u'',
         'services': '',
         'signed': 0,
         'publish_date': '',
         'lat': '',
         'long': '',
         'place_id': '',
         'post_id': '17'
     }
     post1 = Post.objects.get(id=post.id)
     post1.text = update_text
     self.assertEqual(post1.prepare_update_params(), expected_config)
Exemplo n.º 10
0
 def test_post_prepare_create_params(self):
     text = 'test text'
     expected_config = {
         'owner_id': OWNER_ID,
         'friends_only': 0,
         'from_group': '',
         'message': text,
         'attachments': u'',
         'services': '',
         'signed': 0,
         'publish_date': '',
         'lat': '',
         'long': '',
         'place_id': '',
         'post_id': ''
     }
     group = GroupFactory.create(remote_id=OWNER_ID)
     post = PostFactory.create()
     post.wall_owner = group
     post.text = text
     self.assertEqual(post.prepare_create_params(), expected_config)