Ejemplo n.º 1
0
    def test_cannot_retrieve_soft_deleted_community(self):
        """
        should not be able to retrieve a soft deleted community and return 403
        """
        global_moderator = make_global_moderator()

        user = make_user()
        headers = make_authentication_headers_for_user(user)

        community_owner = make_user()
        community = make_community(creator=community_owner)
        community_name = community.name

        community_reporter = make_user()
        moderation_category = make_moderation_category()
        community_reporter.report_community(community=community,
                                            category_id=moderation_category.pk)

        moderated_object = ModeratedObject.get_or_create_moderated_object_for_community(
            community=community, category_id=moderation_category.pk)
        global_moderator.approve_moderated_object(
            moderated_object=moderated_object)
        global_moderator.verify_moderated_object(
            moderated_object=moderated_object)

        url = self._get_url(community_name=community_name)

        response = self.client.get(url, **headers)

        self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
Ejemplo n.º 2
0
    def test_no_suspension_penalties_do_not_prevent_access(self):
        """
        no suspension penalties should not prevent access to the API
        :return:
        """
        global_moderator = make_global_moderator()

        user = make_user()

        reporter_user = make_user()
        report_category = make_moderation_category(
            severity=ModerationCategory.SEVERITY_MEDIUM)

        reporter_user.report_user_with_username(username=user.username,
                                                category_id=report_category.pk)

        moderated_object = ModeratedObject.get_or_create_moderated_object_for_user(
            user=user, category_id=report_category.pk)

        global_moderator.approve_moderated_object(
            moderated_object=moderated_object)

        url = self._get_url()
        headers = make_authentication_headers_for_user(user)
        response = self.client.get(url, **headers)

        self.assertEqual(status.HTTP_200_OK, response.status_code)
Ejemplo n.º 3
0
    def test_cant_retrieve_reported_and_approved_hashtag(self):
        """
        should not be able to retrieve a reported and approved hashtag and return 403
        """
        user = make_user()
        headers = make_authentication_headers_for_user(user)

        hashtag = make_hashtag()
        hashtag_name = hashtag.name

        reporter = make_user()
        report_category = make_moderation_category()
        reporter.report_hashtag_with_name(hashtag_name=hashtag_name,
                                          category_id=report_category.pk)

        global_moderator = make_global_moderator()

        moderated_object = ModeratedObject.get_or_create_moderated_object_for_hashtag(
            hashtag=hashtag, category_id=report_category.pk)
        global_moderator.approve_moderated_object(
            moderated_object=moderated_object)

        url = self._get_url(hashtag_name=hashtag_name)

        response = self.client.get(url, **headers)

        self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN)
Ejemplo n.º 4
0
    def test_cant_search_for_reported_and_approved_hashtag(self):
        """
        should not be able to search for a reported and approved hashtag and return 200
        """
        user = make_user()
        headers = make_authentication_headers_for_user(user)

        reporter = make_user()

        hashtag_name = make_hashtag_name()
        hashtag = make_hashtag(name=hashtag_name)

        report_category = make_moderation_category()
        reporter.report_hashtag_with_name(hashtag_name=hashtag_name,
                                          category_id=report_category.pk)

        global_moderator = make_global_moderator()

        moderated_object = ModeratedObject.get_or_create_moderated_object_for_hashtag(
            hashtag=hashtag, category_id=report_category.pk)
        global_moderator.approve_moderated_object(
            moderated_object=moderated_object)

        url = self._get_url()
        response = self.client.get(url, {'query': hashtag.name}, **headers)

        self.assertEqual(response.status_code, status.HTTP_200_OK)
        parsed_response = json.loads(response.content)
        self.assertEqual(len(parsed_response), 0)