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)
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)
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)
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)