예제 #1
0
    def test_action_mark_multiple_as_suspicious(self):
        abuse_report_admin = AbuseReportAdmin(AbuseReport, admin.site)
        request = RequestFactory().get('/')
        request.user = self.user
        request._messages = default_messages_storage(request)
        reports = AbuseReport.objects.filter(
            guid__in=('@guid3', '@unknown_guid'))
        assert reports.count() == 2
        for report in reports.all():
            assert report.state == AbuseReport.STATES.UNTRIAGED
        other_report = AbuseReport.objects.get(guid='@guid1', message='')
        assert other_report.state == AbuseReport.STATES.UNTRIAGED

        abuse_report_admin.mark_as_suspicious(request, reports)
        for report in reports.all():
            assert report.state == AbuseReport.STATES.SUSPICIOUS

        # Other reports should be unaffected
        assert other_report.reload().state == AbuseReport.STATES.UNTRIAGED
예제 #2
0
파일: test_admin.py 프로젝트: diox/olympia
    def test_delete_multiple_action_soft_deletes(self):
        abuse_report_admin = AbuseReportAdmin(AbuseReport, admin.site)
        request = RequestFactory().post('/', {'post': 'yes'})
        request.user = user_factory()
        self.grant_permission(request.user, 'AbuseReports:Edit')
        self.grant_permission(request.user, 'Admin:Advanced')
        request._messages = default_messages_storage(request)
        reports = AbuseReport.objects.filter(
            guid__in=('@guid3', '@unknown_guid'))
        assert reports.count() == 2
        assert AbuseReport.objects.count() == 6
        assert AbuseReport.unfiltered.count() == 6

        action_callback = abuse_report_admin.get_actions(
            request)['delete_selected'][0]
        rval = action_callback(abuse_report_admin, request, reports)
        assert rval is None  # successful actions return None
        assert reports.count() == 0  # All should have been soft-deleted.
        assert AbuseReport.objects.count() == 4  # Should have 1 unaffected.
        assert AbuseReport.unfiltered.count() == 6  # We're only soft-deleting.
예제 #3
0
파일: test_admin.py 프로젝트: diox/olympia
    def test_action_mark_multiple_as_valid(self):
        abuse_report_admin = AbuseReportAdmin(AbuseReport, admin.site)
        request = RequestFactory().post('/')
        request.user = self.user
        request._messages = default_messages_storage(request)
        reports = AbuseReport.objects.filter(
            guid__in=('@guid3', '@unknown_guid'))
        assert reports.count() == 2
        for report in reports.all():
            assert report.state == AbuseReport.STATES.UNTRIAGED
        other_report = AbuseReport.objects.get(guid='@guid1', message='')
        assert other_report.state == AbuseReport.STATES.UNTRIAGED

        action_callback = abuse_report_admin.get_actions(
            request)['mark_as_valid'][0]
        rval = action_callback(abuse_report_admin, request, reports)
        assert rval is None  # successful actions return None
        for report in reports.all():
            assert report.state == AbuseReport.STATES.VALID

        # Other reports should be unaffected
        assert other_report.reload().state == AbuseReport.STATES.UNTRIAGED
예제 #4
0
    def test_ban_action(self):
        another_user = user_factory()
        a_third_user = user_factory()
        users = UserProfile.objects.filter(
            pk__in=(another_user.pk, self.user.pk))
        user_admin = UserAdmin(UserProfile, admin.site)
        request = RequestFactory().get('/')
        request.user = user_factory()
        core.set_user(request.user)
        request._messages = default_messages_storage(request)
        user_admin.ban_action(request, users)
        # Both users should be banned.
        another_user.reload()
        self.user.reload()
        assert another_user.deleted
        assert another_user.email
        assert self.user.deleted
        assert self.user.email
        # The 3rd user should be unaffected.
        assert not a_third_user.reload().deleted

        # We should see 2 activity logs for banning.
        assert ActivityLog.objects.filter(
            action=amo.LOG.ADMIN_USER_BANNED.id).count() == 2
예제 #5
0
    def test_ban_action(self):
        another_user = user_factory()
        a_third_user = user_factory()
        users = UserProfile.objects.filter(pk__in=(another_user.pk,
                                                   self.user.pk))
        user_admin = UserAdmin(UserProfile, admin.site)
        request = RequestFactory().get('/')
        request.user = user_factory()
        core.set_user(request.user)
        request._messages = default_messages_storage(request)
        user_admin.ban_action(request, users)
        # Both users should be banned.
        another_user.reload()
        self.user.reload()
        assert another_user.deleted
        assert another_user.email
        assert self.user.deleted
        assert self.user.email
        # The 3rd user should be unaffected.
        assert not a_third_user.reload().deleted

        # We should see 2 activity logs for banning.
        assert ActivityLog.objects.filter(
            action=amo.LOG.ADMIN_USER_BANNED.id).count() == 2