Example #1
1
    def test_actor_avatar(self):
        avatar = create_content()
        self.api_post('/api/user/change_avatar', {'content_id': avatar.id}, user=self.actor)

        comment = create_quest_comment(author=self.user)
        star_models.star(self.actor, comment)

        sticker = comment.stickers.all()[0]
        stream = ActivityStream(self.user.id, activity_types={StarredActivity.TYPE: StarredActivity})
        activity = StarredActivity.from_sticker(self.actor, sticker)
        stream.push(activity)

        activity, _ = list(self.user.redis.activity_stream)
        self.assertTrue('avatar_url' in activity.to_client()['actor'])
Example #2
0
    def test_empty_quest_inbox(self):
        create_quest_comment(quest=self.quest, author=self.user)

        resp = self.api_post('/api/quests/inbox', user=self.user)
        self.assertAPISuccess(resp)

        self.assertEqual(0, len(resp['quests']))
        self.assertFalse('current_quest' in resp)
Example #3
0
    def test_empty_quest_inbox(self):
        create_quest_comment(quest=self.quest, author=self.user)

        resp = self.api_post('/api/quests/history', user=self.user)
        self.assertAPISuccess(resp)

        self.assertEqual(1, len(resp['quests']))
        self.assertEqual(resp['quests'][0]['id'], self.quest.id)
Example #4
0
    def test_empty_quest_inbox(self):
        create_quest_comment(quest=self.quest, author=self.user)

        resp = self.api_post('/api/quests/inbox', user=self.user)
        self.assertAPISuccess(resp)

        self.assertEqual(0, len(resp['quests']))
        self.assertFalse('current_quest' in resp)
Example #5
0
    def test_empty_quest_inbox(self):
        create_quest_comment(quest=self.quest, author=self.user)

        resp = self.api_post('/api/quests/history', user=self.user)
        self.assertAPISuccess(resp)

        self.assertEqual(1, len(resp['quests']))
        self.assertEqual(resp['quests'][0]['id'], self.quest.id)
Example #6
0
 def test_deny_and_ban(self):
     cmt = create_quest_comment(self.quest)
     cmt2 = create_quest_comment(self.quest, author=cmt.author)
     self.api_post('/api/whitelisting/deny', {
         'comment_id': cmt.id,
         'disable_author': True
     },
                   user=create_staff())
     self._assert_not_in_gallery(cmt)
     self._assert_not_in_gallery(cmt2)
Example #7
0
    def test_profile(self):
        self.assertStatus(200, '/' + self.user.username)

        for _ in range(10):
            cmt = create_quest_comment(author=self.user)
            self.api_post('/api/stars/star', {'comment_id': cmt.id})
        self.assertStatus(200, '/' + self.user.username)
Example #8
0
 def test_starred_comments_gallery(self):
     cmt = create_quest_comment(self.quest)
     user = create_user()
     self._star(cmt.id, user=user)
     gallery = self.api_post('/api/quest_comments/starred_comments_gallery',
                             {'username': user.username})['comments']
     self.assertEqual(cmt.id, gallery[0]['id'])
Example #9
0
    def test_rejudge(self):
        cmt = create_quest_comment(self.quest)
        self.api_post("/api/whitelisting/deny", {"comment_id": cmt.id}, user=create_staff())
        self._assert_not_in_gallery(cmt)

        self.api_post("/api/whitelisting/allow", {"comment_id": cmt.id}, user=create_staff())
        self._assert_in_gallery(cmt)
Example #10
0
    def test_rejudge(self):
        cmt = create_quest_comment(self.quest)
        self.api_post('/api/whitelisting/deny', {'comment_id': cmt.id}, user=create_staff())
        self._assert_not_in_gallery(cmt)

        self.api_post('/api/whitelisting/allow', {'comment_id': cmt.id}, user=create_staff())
        self._assert_in_gallery(cmt)
Example #11
0
    def test_visibility_changes(self):
        cmt = create_quest_comment(self.quest)
        self._gallery(self.quest)

        deny(cmt)
        cmts = self._gallery(self.quest)
        self.assertFalse(cmt.id in [c['id'] for c in cmts])
Example #12
0
    def test_profile(self):
        self.assertStatus(200, '/' + self.user.username)

        for _ in range(10):
            cmt = create_quest_comment(author=self.user)
            self.api_post('/api/stars/star', {'comment_id': cmt.id})
        self.assertStatus(200, '/' + self.user.username)
 def test_create_share_url_for_channel_via_api(self):
     cmt = create_quest_comment()
     result = self.api_post('/api/share/create_for_channel',
                            {'comment_id': cmt.id, 'channel': 'testing'}, user=self.user)
     self.assertAPISuccess(result)
     url = result['share_url']
     rmatch = '/s/{}'.format(util.base36encode(ShareTrackingUrl.objects.order_by('-id')[0].id))
     self.assertEqual(url[url.rfind(rmatch):], rmatch)
Example #14
0
 def test_create_share_url_for_channel_has_message_for_twitter(self):
     cmt = create_quest_comment()
     result = self.api_post('/api/share/create_for_channel', {
         'comment_id': cmt.id,
         'channel': 'twitter'
     },
                            user=self.user)
     self.assertTrue('message' in result)
Example #15
0
 def test_create_share_url_for_channel_via_api(self):
     cmt = create_quest_comment()
     result = self.api_post('/api/share/create_for_channel',
                            {'comment_id': cmt.id, 'channel': 'testing'}, user=self.user)
     self.assertAPISuccess(result)
     url = result['share_url']
     rmatch = '/s/1j'
     self.assertEqual(url[url.rfind(rmatch):], rmatch)
Example #16
0
    def test_reenable(self):
        cmt = create_quest_comment(self.quest)
        self._assert_not_in_gallery(cmt)
        
        self._disable()
        self._assert_in_gallery(cmt)

        self._enable()
        self._assert_not_in_gallery(cmt)
Example #17
0
    def test_reactions(self):
        cmt = create_quest_comment()

        star_models.star(create_user(), cmt)
        Playback.append(comment=cmt, viewer=create_user())

        cmt = QuestComment.objects.get(id=cmt.id)
        reactions = cmt.details().reactions
        self.assertEqual(len(reactions), 2)
Example #18
0
    def test_reenable(self):
        cmt = create_quest_comment(self.quest)
        self._assert_not_in_gallery(cmt)

        self._disable()
        self._assert_in_gallery(cmt)

        self._enable()
        self._assert_not_in_gallery(cmt)
Example #19
0
    def test_reactions(self):
        cmt = create_quest_comment()

        star_models.star(create_user(), cmt)
        Playback.append(comment=cmt, viewer=create_user())

        cmt = QuestComment.objects.get(id=cmt.id)
        reactions = cmt.details().reactions
        self.assertEqual(len(reactions), 2)
    def _followee_post(self):
        """ Returns the posted comment. """
        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id, activity_types=[FolloweePostedActivity])
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        return comment
Example #21
0
    def test_quest_comments_with_forced_id(self):
        cmt = create_quest_comment(self.quest)
        for _ in range(4):
            create_quest_comment(self.quest)

        def get_cmts():
            return self.api_post('/api/quests/comments', {
                'quest_id': self.quest.id,
                'force_comment_id': cmt.id,
            })['comments']

        cmts = get_cmts()
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in cmts])
        self.assertEqual(len(cmts), COMMENTS_PER_PAGE + 1)

        cmt = create_quest_comment(self.quest)
        cmts = get_cmts()
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in cmts])
        self.assertEqual(len(cmts), COMMENTS_PER_PAGE)
Example #22
0
    def test_followee_posted(self):
        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id, activity_types={FolloweePostedActivity.TYPE: FolloweePostedActivity})
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        activity, _ = list(self.user.redis.activity_stream)
        self.assertEqual(activity.to_client()['comment_id'], comment.id)
Example #23
0
    def test_quest_comments_with_forced_id(self):
        cmt = create_quest_comment(self.quest)
        for _ in range(4):
            create_quest_comment(self.quest)

        def get_cmts():
            return self.api_post('/api/quests/comments', {
                'quest_id': self.quest.id,
                'force_comment_id': cmt.id,
            })['comments']

        cmts = get_cmts()
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in cmts])
        self.assertEqual(len(cmts), COMMENTS_PER_PAGE + 1)

        cmt = create_quest_comment(self.quest)
        cmts = get_cmts()
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in cmts])
        self.assertEqual(len(cmts), COMMENTS_PER_PAGE)
Example #24
0
    def test_auto_moderation_from_flags(self):
        cmt = create_quest_comment()

        for i in range(1, settings.AUTO_MODERATE_FLAGGED_COMMENTS_THRESHOLD + 1):
            resp = self.api_post('/api/comment/flag', {'comment_id': cmt.id})

            cmt = QuestComment.all_objects.get(pk=cmt.pk)
            getattr(self, 'assert' + str(i == settings.AUTO_MODERATE_FLAGGED_COMMENTS_THRESHOLD))(
                cmt.visibility == Visibility.DISABLED)

        self.assertTrue(cmt.id in [qc.id for qc in QuestComment.unjudged_flagged()])
    def _followee_post(self):
        """ Returns the posted comment. """
        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id,
                                activity_types=[FolloweePostedActivity])
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        return comment
    def test_cache_invalidation(self):
        original_len = len(self._get_items())

        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id, activity_types=[FolloweePostedActivity])
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        self.assertEqual(len(self._get_items()), original_len + 1)
Example #27
0
 def test_create_share_url_for_channel_via_api(self):
     cmt = create_quest_comment()
     result = self.api_post('/api/share/create_for_channel', {
         'comment_id': cmt.id,
         'channel': 'testing'
     },
                            user=self.user)
     self.assertAPISuccess(result)
     url = result['share_url']
     rmatch = '/s/1j'
     self.assertEqual(url[url.rfind(rmatch):], rmatch)
    def test_cache_invalidation(self):
        original_len = len(self._get_items())

        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id,
                                activity_types=[FolloweePostedActivity])
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        self.assertEqual(len(self._get_items()), original_len + 1)
Example #29
0
    def test_divvy(self):
        cmt = create_quest_comment(self.quest)
        cmt.id = 9001
        cmt.save()
        
        for mode in ['']:
            def divvy(from_, to):
                return self.get('/admin/staff/moderation{}/divvy/{}-{}'.format(mode, from_, to), user=create_staff()).content

            self.assertFalse(str(cmt.id) in divvy(2, 4))
            self.assertTrue(str(cmt.id) in divvy(0, 9))
            self.assertTrue(str(cmt.id) in divvy(0, 1))
Example #30
0
 def test_create_share_url_for_channel_via_api(self):
     cmt = create_quest_comment()
     result = self.api_post('/api/share/create_for_channel', {
         'comment_id': cmt.id,
         'channel': 'testing'
     },
                            user=self.user)
     self.assertAPISuccess(result)
     url = result['share_url']
     rmatch = '/s/{}'.format(
         util.base36encode(ShareTrackingUrl.objects.order_by('-id')[0].id))
     self.assertEqual(url[url.rfind(rmatch):], rmatch)
Example #31
0
 def recipients():
     actor = create_user()
     cmt = create_quest_comment(author=author)
     sticker = CommentSticker.objects.create(
         comment=cmt,
         timestamp=time.time(),
         type_id=settings.STAR_STICKER_TYPE_ID,
         user=actor,
         ip='0.0.0.0',
     )
     r = action_recipients('starred', actor, sticker, channel='PushNotificationChannel')
     return (r, cmt)
Example #32
0
    def test_quest_gallery_for_comment(self):
        cmt = create_quest_comment(self.quest)
        for _ in range(4):
            create_quest_comment(self.quest)

        def get_cmts():
            return self.api_post('/api/quests/gallery_for_comment', {
                'comment_id': cmt.id,
            })['comments']

        cmts = get_cmts()
        print [c['id'] for c in cmts]
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in cmts])
        self.assertEqual(len(cmts), COMMENTS_PER_PAGE)

        cmt = create_quest_comment(self.quest)
        cmts = get_cmts()
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in cmts])
        self.assertEqual(len(cmts), COMMENTS_PER_PAGE)
        
        curate(cmt)
        self.assertTrue(str(cmt.id) in [str(c['id']) for c in get_cmts()])
Example #33
0
    def test_cache_invalidation(self):
        def get_items():
            return self.api_post('/api/activity/activities', user=self.user)['activities']

        original_len = len(get_items())

        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id, activity_types={FolloweePostedActivity.TYPE: FolloweePostedActivity})
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        self.assertEqual(len(get_items()), original_len + 1)
Example #34
0
    def test_followee_posted(self):
        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id,
                                activity_types={
                                    FolloweePostedActivity.TYPE:
                                    FolloweePostedActivity
                                })
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        activity, _ = list(self.user.redis.activity_stream)
        self.assertEqual(activity.to_client()['comment_id'], comment.id)
Example #35
0
    def test_divvy(self):
        cmt = create_quest_comment(self.quest)
        cmt.id = 9001
        cmt.save()

        for mode in ['']:

            def divvy(from_, to):
                return self.get('/admin/staff/moderation{}/divvy/{}-{}'.format(
                    mode, from_, to),
                                user=create_staff()).content

            self.assertFalse(str(cmt.id) in divvy(2, 4))
            self.assertTrue(str(cmt.id) in divvy(0, 9))
            self.assertTrue(str(cmt.id) in divvy(0, 1))
    def test_actor_avatar(self):
        avatar = create_content()
        self.api_post('/api/user/change_avatar', {'content_id': avatar.id},
                      user=self.actor)

        comment = create_quest_comment(author=self.user)
        star_models.star(self.actor, comment)

        sticker = comment.stickers.all()[0]
        stream = ActivityStream(self.user.id, activity_types=[StarredActivity])
        activity = StarredActivity.from_sticker(self.actor, sticker)
        stream.push(activity)

        activity, _ = list(self.user.redis.activity_stream)
        self.assertTrue('avatar_url' in activity.to_client()['actor'])
Example #37
0
    def test_auto_moderation_from_flags(self):
        cmt = create_quest_comment()

        for i in range(1, knobs.AUTO_DISABLE_FLAGGED_COMMENTS_THRESHOLD[None] +
                       1):
            resp = self.api_post('/api/comment/flag', {'comment_id': cmt.id})

            cmt = QuestComment.all_objects.get(pk=cmt.pk)
            getattr(
                self, 'assert' +
                str(i == knobs.AUTO_DISABLE_FLAGGED_COMMENTS_THRESHOLD[None]))(
                    cmt.visibility == Visibility.DISABLED)

        self.assertTrue(
            cmt.id in [qc.id for qc in QuestComment.unjudged_flagged()])
Example #38
0
    def test_cache_invalidation(self):
        def get_items():
            return self.api_post('/api/activity/activities',
                                 user=self.user)['activities']

        original_len = len(get_items())

        self.user.follow(self.actor)
        comment = create_quest_comment(author=self.actor)

        stream = ActivityStream(self.user.id,
                                activity_types={
                                    FolloweePostedActivity.TYPE:
                                    FolloweePostedActivity
                                })
        activity = FolloweePostedActivity.from_comment(self.actor, comment)
        stream.push(activity)

        self.assertEqual(len(get_items()), original_len + 1)
Example #39
0
 def test_unjudged(self):
     cmt = create_quest_comment(self.quest)
     self._assert_not_in_gallery(cmt)
 def test_create_share_url_for_channel_has_message_for_twitter(self):
     cmt = create_quest_comment()
     result = self.api_post('/api/share/create_for_channel',
                            {'comment_id': cmt.id, 'channel': 'twitter'}, user=self.user)
     self.assertTrue('message' in result)
Example #41
0
 def after_setUp(self):
     self.comment = create_quest_comment()
     self.user = create_user()
Example #42
0
 def after_setUp(self):
     self.comment = create_quest_comment()
     self.user = create_user()
Example #43
0
 def test_deny(self):
     cmt = create_quest_comment(self.quest)
     self.api_post('/api/whitelisting/deny', {'comment_id': cmt.id}, user=create_staff())
     self._assert_not_in_gallery(cmt)
Example #44
0
 def test_quest_comments(self):
     cmt = create_quest_comment(self.quest)
     cmts = self.api_post('/api/quests/comments', {'quest_id': self.quest.id})['comments']
     self.assertEqual(cmts[0]['id'], cmt.id)
Example #45
0
 def test_self_flag(self):
     cmt = create_quest_comment()
     resp = self.api_post('/api/comment/flag', {'comment_id': cmt.id},
                          user=cmt.author)
Example #46
0
 def test_playback_data(self):
     data = {'foo': 'bar'}
     self._check(create_quest_comment(playback_data=data), data)
Example #47
0
 def test_deny_and_ban(self):
     cmt = create_quest_comment(self.quest)
     cmt2 = create_quest_comment(self.quest, author=cmt.author)
     self.api_post('/api/whitelisting/deny', {'comment_id': cmt.id, 'disable_author': True}, user=create_staff())
     self._assert_not_in_gallery(cmt)
     self._assert_not_in_gallery(cmt2)
Example #48
0
 def test_unjudged(self):
     cmt = create_quest_comment(self.quest)
     self._assert_not_in_gallery(cmt)
Example #49
0
 def test_reactions_update_on_playback(self):
     cmt = create_quest_comment()
     self.assertEqual(len(cmt.details().reactions), 0)
     cmt = self.api_post('/api/playback/playback',
                         {'comment_id': cmt.id})['comment']
     self.assertEqual(len(cmt['reactions']), 1)
Example #50
0
 def test_playback_data(self):
     data = {'foo': 'bar'}
     self._check(create_quest_comment(playback_data=data), data)
Example #51
0
 def test_empty_playback_data(self):
     self._check(create_quest_comment(), None)
Example #52
0
 def test_self_flag(self):
     cmt = create_quest_comment()
     resp = self.api_post('/api/comment/flag', {'comment_id': cmt.id}, user=cmt.author)
Example #53
0
 def test_playback_data(self):
     data = json.dumps({'foo': 'bar'})
     self._check(create_quest_comment(playback_data=data).id, data)
Example #54
0
 def test_empty_playback_data(self):
     self._check(create_quest_comment(), None)
Example #55
0
 def test_reactions_update_on_playback(self):
     cmt = create_quest_comment()
     self.assertEqual(len(cmt.details().reactions), 0)
     cmt = self.api_post('/api/playback/playback', {'comment_id': cmt.id})['comment']
     self.assertEqual(len(cmt['reactions']), 1)
Example #56
0
 def test_top_gallery(self):
     cmt = create_quest_comment(self.quest)
     self.api_post('/api/stars/star', {'comment_id': cmt.id})
     gallery = self.api_post('/api/quests/top_gallery',
                             {'quest_id': cmt.parent_comment_id})['comments']
     self.assertEqual(1, len(gallery))
Example #57
0
 def test_quest_comments(self):
     cmt = create_quest_comment(self.quest)
     cmts = self.api_post('/api/quests/comments',
                          {'quest_id': self.quest.id})['comments']
     self.assertEqual(cmts[0]['id'], cmt.id)
Example #58
0
 def test_playback_data(self):
     data = json.dumps({'foo': 'bar'})
     self._check(create_quest_comment(playback_data=data).id, data)