Beispiel #1
0
 def setUp(self):
     super(AddRemoveLeaderTests, self).setUp()
     self.user = UserFactory()
     add_permission(self.user, GroupProfile, 'change_groupprofile')
     self.leader = UserFactory()
     self.group_profile = GroupProfileFactory()
     self.client.login(username=self.user.username, password='******')
Beispiel #2
0
 def setUp(self):
     super(AddRemoveLeaderTests, self).setUp()
     self.user = user(save=True)
     add_permission(self.user, GroupProfile, 'change_groupprofile')
     self.leader = user(save=True)
     self.group_profile = group_profile(group=group(save=True), save=True)
     self.client.login(username=self.user.username, password='******')
Beispiel #3
0
    def test_user_can_edit_others_profile_with_permission(self):
        u1 = user(save=True)
        url = reverse('users.edit_profile', args=[u1.username])

        u2 = user(save=True)
        add_permission(u2, Profile, 'change_profile')
        self.client.login(username=u2.username, password='******')

        # Try GET
        r = self.client.get(url)
        eq_(200, r.status_code)

        # Try POST
        data = {'name': 'John Doe',
                'public_email': True,
                'bio': 'my bio',
                'website': 'http://google.com/',
                'twitter': '',
                'facebook': '',
                'mozillians': '',
                'irc_handle': 'johndoe',
                'timezone': 'America/New_York',
                'country': 'US',
                'city': 'Disney World',
                'locale': 'en-US'}
        r = self.client.post(url, data)
        eq_(302, r.status_code)
        profile = Profile.objects.get(user=u1)
        for key in data:
            if key != 'timezone':
                eq_(data[key], getattr(profile, key))
        eq_(data['timezone'], profile.timezone.zone)
Beispiel #4
0
    def setUp(self, switch_is_active):
        switch_is_active.return_value = True

        super(KarmaAPITests, self).setUp()

        try:
            self.mgr = KarmaManager()
            redis_client('karma').flushdb()
        except RedisError:
            raise SkipTest

        self.user1 = user(save=True)
        self.user2 = user(save=True)
        self.user3 = user(save=True)

        TestAction1(user=self.user1).save()
        TestAction2(user=self.user2).save()
        TestAction2(user=self.user2).save()
        TestAction1(user=self.user3).save()
        TestAction1(user=self.user3).save()
        TestAction1(user=self.user3).save()
        self.mgr.update_top()

        self.client.login(username=self.user1.username, password='******')
        add_permission(self.user1, models.Title, 'view_dashboard')
Beispiel #5
0
    def test_needs_change(self):
        """Test setting and unsetting the needs change flag"""
        # Create a new document and edit it, setting needs_change.
        comment = 'Please update for Firefix.next'
        doc = RevisionFactory().document
        data = new_document_data()
        data.update({'needs_change': True,
                     'needs_change_comment': comment,
                     'form': 'doc'})

        # Verify that needs_change can't be set if the user doesn't have
        # the permission.
        self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
        doc = Document.objects.get(pk=doc.pk)
        assert not doc.needs_change
        assert not doc.needs_change_comment

        # Give the user permission, now it should work.
        add_permission(self.u, Document, 'edit_needs_change')
        self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
        doc = Document.objects.get(pk=doc.pk)
        assert doc.needs_change
        eq_(comment, doc.needs_change_comment)

        # Clear out needs_change.
        data.update({'needs_change': False,
                     'needs_change_comment': comment})
        self.client.post(reverse('wiki.edit_document', args=[doc.slug]), data)
        doc = Document.objects.get(pk=doc.pk)
        assert not doc.needs_change
        eq_('', doc.needs_change_comment)
Beispiel #6
0
 def setUp(self):
     super(AddRemoveMemberTests, self).setUp()
     self.user = user(save=True)
     self.member = user(save=True)
     add_permission(self.user, GroupProfile, "change_groupprofile")
     self.group_profile = group_profile(group=group(save=True), save=True)
     self.client.login(username=self.user.username, password="******")
Beispiel #7
0
    def test_elastic_clickthrough_post(self):
        """Test elastic clickthrough write API."""
        u = user(save=True)
        add_permission(u, Metric, 'add_metric')

        click_kind, search_kind = self._make_elastic_metric_kinds()

        # POST the new object:
        url = reverse('api_dispatch_list',
                      kwargs={'resource_name': 'elastic-clickthrough-rate',
                              'api_name': 'v1'})
        auth = 'Basic ' + b64encode('%s:%s' % (u.username, 'testpass'))
        response = self.client.post(url,
                                    json.dumps({'start': '2000-01-02',
                                                'searches': 1e8,
                                                'clicks': 5e7}),
                                    content_type='application/json',
                                    HTTP_AUTHORIZATION=auth)
        eq_(response.status_code, 201)

        # Do a GET, and see if the round trip worked:
        response = self.client.get(url + '?format=json')
        self.assertContains(  # Beware of dict order changes someday.
            response,
            '"objects": [{"clicks": 50000000, "resource_uri": "", '
                         '"searches": 100000000, "start": "2000-01-02"}]')
Beispiel #8
0
    def test_needs_change(self):
        """Test setting and unsetting the needs change flag"""
        # Create a new document and edit it, setting needs_change.
        comment = "Please update for Firefix.next"
        doc = revision(save=True).document
        data = new_document_data()
        data.update({"needs_change": True, "needs_change_comment": comment, "form": "doc"})

        # Verify that needs_change can't be set if the user doesn't have
        # the permission.
        self.client.post(reverse("wiki.edit_document", args=[doc.slug]), data)
        doc = Document.objects.get(pk=doc.pk)
        assert not doc.needs_change
        assert not doc.needs_change_comment

        # Give the user permission, now it should work.
        add_permission(self.u, Document, "edit_needs_change")
        self.client.post(reverse("wiki.edit_document", args=[doc.slug]), data)
        doc = Document.objects.get(pk=doc.pk)
        assert doc.needs_change
        eq_(comment, doc.needs_change_comment)

        # Clear out needs_change.
        data.update({"needs_change": False, "needs_change_comment": comment})
        self.client.post(reverse("wiki.edit_document", args=[doc.slug]), data)
        doc = Document.objects.get(pk=doc.pk)
        assert not doc.needs_change
        eq_("", doc.needs_change_comment)
 def setUp(self):
     super(AddRemoveLeaderTests, self).setUp()
     self.locale = locale(locale='es', save=True)
     self.user = user(save=True)
     add_permission(self.user, Locale, 'change_locale')
     self.leader = user(save=True)
     self.client.login(username=self.user.username, password='******')
Beispiel #10
0
 def setUp(self):
     super(AddRemoveLeaderTests, self).setUp()
     self.locale = LocaleFactory(locale='es')
     self.user = UserFactory()
     add_permission(self.user, Locale, 'change_locale')
     self.leader = UserFactory()
     self.client.login(username=self.user.username, password='******')
Beispiel #11
0
 def setUp(self):
     """Have a user watch for revision approval. Log in."""
     self.approved_watcher = user(email="*****@*****.**", save=True)
     ApproveRevisionInLocaleEvent.notify(self.approved_watcher, locale="en-US")
     approver = user(save=True)
     add_permission(approver, Revision, "review_revision")
     add_permission(approver, Revision, "mark_ready_for_l10n")
     self.client.login(username=approver.username, password="******")
Beispiel #12
0
    def setUp(self):
        """Have a user watch for revision approval. Log in."""
        self.ready_watcher = user(email="*****@*****.**", save=True)
        ReadyRevisionEvent.notify(self.ready_watcher)

        readyer = user(save=True)
        add_permission(readyer, Revision, "mark_ready_for_l10n")
        self.client.login(username=readyer.username, password="******")
Beispiel #13
0
 def setUp(self):
     super(AddRemoveContributorTests, self).setUp()
     self.user = UserFactory()
     self.contributor = UserFactory()
     add_permission(self.user, Document, 'change_document')
     self.client.login(username=self.user.username, password='******')
     self.revision = RevisionFactory()
     self.document = self.revision.document
Beispiel #14
0
 def setUp(self):
     super(AddRemoveContributorTests, self).setUp()
     self.user = user(save=True)
     self.contributor = user(save=True)
     add_permission(self.user, Document, "change_document")
     self.client.login(username=self.user.username, password="******")
     self.revision = revision(save=True)
     self.document = self.revision.document
    def setUp(self):
        """Have a user watch for revision approval. Log in."""
        self.ready_watcher = UserFactory(email='*****@*****.**')
        ReadyRevisionEvent.notify(self.ready_watcher)

        readyer = UserFactory()
        add_permission(readyer, Revision, 'mark_ready_for_l10n')
        self.client.login(username=readyer.username, password='******')
Beispiel #16
0
    def setUp(self):
        super(FlaggedQueueTestCase, self).setUp()
        self.answer = AnswerFactory()
        self.flagger = UserFactory()

        u = UserFactory()
        add_permission(u, FlaggedObject, 'can_moderate')

        self.client.login(username=u.username, password='******')
 def setUp(self):
     """Have a user watch for revision approval. Log in."""
     self.approved_watcher = UserFactory(email='*****@*****.**')
     ApproveRevisionInLocaleEvent.notify(self.approved_watcher,
                                         locale='en-US')
     approver = UserFactory()
     add_permission(approver, Revision, 'review_revision')
     add_permission(approver, Revision, 'mark_ready_for_l10n')
     self.client.login(username=approver.username, password='******')
Beispiel #18
0
    def test_delete_image(self):
        """Deleting an uploaded image works."""
        im = image()
        u = user(save=True)
        add_permission(u, Image, 'delete_image')
        self.client.login(username=u.username, password='******')
        r = post(self.client, 'gallery.delete_media', args=['image', im.id])

        eq_(200, r.status_code)
        eq_(0, Image.objects.count())
Beispiel #19
0
    def test_edit_image_with_permissions(self):
        """Editing image sets the updated_by field."""
        img = image()
        u = user(save=True)
        add_permission(u, Image, 'change_image')
        self.client.login(username=u.username, password='******')
        r = post(self.client, 'gallery.edit_media', {'description': 'arrr'},
                 args=['image', img.id])

        eq_(200, r.status_code)
        eq_(u.username, Image.objects.get().updated_by.username)
Beispiel #20
0
    def test_schedule_rebuild_kb_on_delete(self, schedule_rebuild_kb):
        """KB rebuild scheduled on delete"""
        im = image()
        u = user(save=True)
        add_permission(u, Image, 'delete_image')
        self.client.login(username=u.username, password='******')
        r = post(self.client, 'gallery.delete_media', args=['image', im.id])

        eq_(200, r.status_code)
        eq_(0, Image.objects.count())
        assert schedule_rebuild_kb.called
    def test_permission_required(self):
        url = reverse('flagit.queue', force_locale=True)
        resp = self.client.get(url)
        eq_(302, resp.status_code)

        self.client.login(username=self.user.username, password='******')
        resp = self.client.get(url)
        eq_(403, resp.status_code)

        add_permission(self.user, FlaggedObject, 'can_moderate')
        resp = self.client.get(url)
        eq_(200, resp.status_code)
Beispiel #22
0
 def setUp(self):
     super(KBBelongsTestCase, self).setUp()
     u = UserFactory()
     self.doc = DocumentFactory(title='spam')
     self.doc_2 = DocumentFactory(title='eggs')
     self.thread = ThreadFactory(creator=u, document=self.doc, is_locked=False)
     self.thread_2 = ThreadFactory(creator=u, document=self.doc_2, is_locked=False)
     permissions = ('sticky_thread', 'lock_thread', 'delete_thread', 'delete_post')
     for permission in permissions:
         add_permission(u, self.thread, permission)
     self.post = self.thread.new_post(creator=self.thread.creator, content='foo')
     self.client.login(username=u.username, password='******')
Beispiel #23
0
    def setUp(self):
        super(FlaggedQueueTestCase, self).setUp()
        q = question(creator=user(save=True), save=True)
        self.answer = answer(question=q,
                             creator=user(save=True),
                             save=True)

        self.flagger = user(save=True)
        u = user(save=True)
        add_permission(u, FlaggedObject, 'can_moderate')

        self.client.login(username=u.username, password='******')
Beispiel #24
0
    def setUp(self):
        u = user(save=True)
        add_permission(u, Question, 'change_question')
        self.user = u

        p = product(save=True)
        t = topic(product=p, save=True)

        q = question(product=p, topic=t, save=True)

        self.product = p
        self.topic = t
        self.question = q
Beispiel #25
0
    def test_add_tags(self):
        q = question(save=True)
        eq_(0, q.tags.count())

        u = profile().user
        add_permission(u, Tag, 'add_tag')
        self.client.force_authenticate(user=u)

        res = self.client.post(reverse('question-add-tags', args=[q.id]),
                               content_type='application/json',
                               data=json.dumps({'tags': ['test', 'more', 'tags']}))
        eq_(res.status_code, 200)
        eq_(3, q.tags.count())
Beispiel #26
0
    def test_mods_can_see_spam_details(self):
        self.question.is_spam = True
        self.question.save()

        res = get(self.client, 'questions.details', args=[self.question.id])
        eq_(404, res.status_code)

        u = user(save=True)
        add_permission(u, FlaggedObject, 'can_moderate')
        self.client.login(username=u.username, password='******')

        res = get(self.client, 'questions.details', args=[self.question.id])
        eq_(200, res.status_code)
Beispiel #27
0
    def setUp(self):
        u = UserFactory()
        add_permission(u, Question, 'change_question')
        assert u.has_perm('questions.change_question')
        self.user = u

        p = ProductFactory()
        t = TopicFactory(product=p)

        q = QuestionFactory(product=p, topic=t)

        self.product = p
        self.topic = t
        self.question = q
Beispiel #28
0
 def test_flag_kbforum_post(self):
     u = user(save=True)
     t = thread(save=True)
     p = t.new_post(creator=u, content='foo')
     f = FlaggedObject(content_object=p, reason='spam', creator_id=u.id)
     f.save()
     # Make sure flagit queue page works
     u2 = user(save=True)
     add_permission(u2, FlaggedObject, 'can_moderate')
     self.client.login(username=u2.username, password='******')
     response = get(self.client, 'flagit.queue')
     eq_(200, response.status_code)
     doc = pq(response.content)
     eq_(1, len(doc('#flagged-queue li')))
Beispiel #29
0
    def setUp(self):
        u = user(save=True)
        add_permission(u, Question, "change_question")
        self.user = u

        p = product(save=True)
        t = topic(product=p, save=True)

        q = question(save=True)
        q.products.add(p)
        q.topics.add(t)
        q.save()

        self.question = q
Beispiel #30
0
    def setUp(self):
        # Set up some ignored users
        self.ignored_usernames = ['deanj', 'r1cky', 'mythmon']
        for username in self.ignored_usernames:
            twitter_account(username=username, ignored=True, save=True)

        # Now a few normal users
        self.normal_usernames = ['willkg', 'marcell', 'ian']
        for username in self.normal_usernames:
            twitter_account(username=username, ignored=False, save=True)

        # Create a user with permissions to ignore
        u = user(save=True)
        add_permission(u, TwitterAccount, 'ignore_account')
        self.client.login(username=u.username, password='******')
Beispiel #31
0
    def test_flagged_and_deleted_ProfileFactory(self):
        u = UserFactory()
        p = u.profile
        flag_user = UserFactory()
        # Flag a profile and delete it
        f = FlaggedObject(content_object=p,
                          reason='spam',
                          creator_id=flag_user.id)
        f.save()
        p.delete()

        # Verify flagit queue
        u = UserFactory()
        add_permission(u, FlaggedObject, 'can_moderate')
        self.client.login(username=u.username, password='******')
        response = get(self.client, 'flagit.queue')
        eq_(200, response.status_code)
        doc = pq(response.content)
        eq_(1, len(doc('#flagged-queue form.update')))
Beispiel #32
0
    def test_profile_deactivate(self):
        """Test user deactivation"""
        p = UserFactory().profile

        self.client.login(username=self.user.username, password='******')
        res = self.client.post(reverse('users.deactivate', locale='en-US'), {'user_id': p.user.id})

        eq_(403, res.status_code)

        add_permission(self.user, Profile, 'deactivate_users')
        res = self.client.post(reverse('users.deactivate', locale='en-US'), {'user_id': p.user.id})

        eq_(302, res.status_code)

        log = Deactivation.objects.get(user_id=p.user_id)
        eq_(log.moderator_id, self.user.id)

        p = Profile.objects.get(user_id=p.user_id)
        assert not p.user.is_active
Beispiel #33
0
    def test_user_can_edit_others_profile_with_permission(self):
        user1 = UserFactory()
        url = reverse("users.edit_profile", args=[user1.username])

        user2 = UserFactory()
        add_permission(user2, Profile, "change_profile")
        self.client.login(username=user2.username, password="******")

        # Try GET
        resp = self.client.get(url)
        eq_(200, resp.status_code)

        # Try POST
        data = {
            "username": "******",
            "name": "John Doe",
            "public_email": True,
            "bio": "my bio",
            "website": "http://google.com/",
            "twitter": "",
            "community_mozilla_org": "",
            "people_mozilla_org": "",
            "matrix_handle": "johndoe",
            "timezone": "America/New_York",
            "country": "US",
            "city": "Disney World",
            "locale": "en-US",
        }
        resp = self.client.post(url, data)
        eq_(302, resp.status_code)
        profile = Profile.objects.get(user=user1)
        for key in data:
            if key not in ["timezone", "username"]:
                assert data[key] == getattr(profile,
                                            key), "%r != %r (for key '%s')" % (
                                                data[key],
                                                getattr(profile, key),
                                                key,
                                            )

        eq_(data["timezone"], profile.timezone.zone)
        eq_(data["username"], profile.user.username)
Beispiel #34
0
    def test_edit_post_moderator(self):
        """Editing post as a moderator works."""
        u = UserFactory()
        add_permission(u, Post, "change_post")
        self.client.login(username=u.username, password="******")

        p = PostFactory()
        t = p.thread
        d = t.document

        r = post(
            self.client,
            "wiki.discuss.edit_post",
            {"content": "More new content"},
            args=[d.slug, t.id, p.id],
        )
        eq_(200, r.status_code)

        edited_p = Post.objects.get(pk=p.pk)
        eq_("More new content", edited_p.content)
Beispiel #35
0
    def test_user_can_edit_others_profile_with_permission(self):
        u1 = UserFactory()
        url = reverse('users.edit_profile', args=[u1.username])

        u2 = UserFactory()
        add_permission(u2, Profile, 'change_profile')
        self.client.login(username=u2.username, password='******')

        # Try GET
        r = self.client.get(url)
        eq_(200, r.status_code)

        # Try POST
        data = {
            'name': 'John Doe',
            'public_email': True,
            'bio': 'my bio',
            'website': 'http://google.com/',
            'twitter': '',
            'facebook': '',
            'mozillians': '',
            'irc_handle': 'johndoe',
            'timezone': 'America/New_York',
            'country': 'US',
            'city': 'Disney World',
            'locale': 'en-US'
        }
        r = self.client.post(url, data)
        eq_(302, r.status_code)
        profile = Profile.objects.get(user=u1)
        for key in data:
            if key != 'timezone':
                assert data[key] == getattr(
                    profile, key), ("%r != %r (for key '%s')" %
                                    (data[key], getattr(profile, key), key))

        eq_(data['timezone'], profile.timezone.zone)
Beispiel #36
0
 def test_edit_with_perm(self):
     add_permission(self.user, GroupProfile, 'change_groupprofile')
     self._verify_get_and_post()
Beispiel #37
0
 def setUp(self):
     super(DocumentEditingTests, self).setUp()
     self.u = UserFactory()
     add_permission(self.u, Document, "change_document")
     self.client.login(username=self.u.username, password="******")
Beispiel #38
0
 def setUp(self):
     super(EditAvatarTests, self).setUp()
     self.user = UserFactory()
     add_permission(self.user, GroupProfile, 'change_groupprofile')
     self.group_profile = GroupProfileFactory()
     self.client.login(username=self.user.username, password='******')
Beispiel #39
0
 def test_has_permission(self):
     u = user(save=True)
     add_permission(u, Announcement, 'add_announcement')
     self.client.login(username=u.username, password='******')
     self._create_test(200, 1)
Beispiel #40
0
 def test_has_permission(self):
     u = user(save=True)
     add_permission(u, Announcement, 'add_announcement')
     self.client.login(username=u.username, password='******')
     self._delete_test(self.announcement.id, 204, 0)
Beispiel #41
0
    def setUp(self):
        u = user(save=True)
        add_permission(u, Profile, 'screen_share')
        self.user = u

        self.question = question(save=True)
Beispiel #42
0
 def test_check_has_perm(self):
     """User with django permission has perm to change video."""
     vid = VideoFactory(creator=self.user)
     u = UserFactory()
     add_permission(u, Video, "change_video")
     check_media_permissions(vid, u, "change")
Beispiel #43
0
 def setUp(self):
     self.user = UserFactory()
     add_permission(self.user, Profile, "screen_share")
     self.question = QuestionFactory()
Beispiel #44
0
 def setUp(self):
     super(EditAvatarTests, self).setUp()
     self.user = user(save=True)
     add_permission(self.user, GroupProfile, 'change_groupprofile')
     self.group_profile = group_profile(group=group(save=True), save=True)
     self.client.login(username=self.user.username, password='******')
Beispiel #45
0
 def test_has_permission(self):
     u = UserFactory()
     add_permission(u, Announcement, "add_announcement")
     self.client.login(username=u.username, password="******")
     self._delete_test(self.announcement.id, 204, 0)
Beispiel #46
0
 def test_check_has_perm(self):
     """User with django permission has perm to change video."""
     vid = video(creator=self.user)
     u = user(save=True)
     add_permission(u, Video, 'change_video')
     check_media_permissions(vid, u, 'change')
Beispiel #47
0
 def setUp(self):
     self.user = user(save=True)
     add_permission(self.user, Revision, 'review_revision')
Beispiel #48
0
 def setUp(self):
     self.user = UserFactory()
     add_permission(self.user, Revision, 'review_revision')
Beispiel #49
0
 def setUp(self):
     super(DocumentEditingTests, self).setUp()
     self.u = user(save=True)
     add_permission(self.u, Document, 'change_document')
     self.client.login(username=self.u.username, password='******')
Beispiel #50
0
 def test_has_permission(self):
     u = UserFactory()
     add_permission(u, Announcement, "add_announcement")
     self.client.login(username=u.username, password="******")
     self._create_test(200, 1)