def test_get_resource_name():
    view = APIView()
    context = {'view': view}
    with override_settings(JSON_API_FORMAT_TYPES=None):
        assert 'APIViews' == utils.get_resource_name(context), 'not formatted'

    context = {'view': view}
    with override_settings(JSON_API_FORMAT_TYPES='dasherize'):
        assert 'api-views' == utils.get_resource_name(context), 'derived from view'

    view.model = get_user_model()
    assert 'users' == utils.get_resource_name(context), 'derived from view model'

    view.resource_name = 'custom'
    assert 'custom' == utils.get_resource_name(context), 'manually set on view'

    view.response = Response(status=403)
    assert 'errors' == utils.get_resource_name(context), 'handles 4xx error'

    view.response = Response(status=500)
    assert 'errors' == utils.get_resource_name(context), 'handles 500 error'

    view = GenericAPIView()
    view.serializer_class = ResourceSerializer
    context = {'view': view}
    assert 'users' == utils.get_resource_name(context), 'derived from serializer'

    view.serializer_class.Meta.resource_name = 'rcustom'
    assert 'rcustom' == utils.get_resource_name(context), 'set on serializer'

    view = GenericAPIView()
    view.serializer_class = NonModelResourceSerializer
    context = {'view': view}
    assert 'users' == utils.get_resource_name(context), 'derived from non-model serializer'
 def test_has_permission_with_view_kwargs_as_non_owner(self):
     """ Non-owners should not have permission. """
     user = UserFactory()
     self.request.user = user
     view = GenericAPIView()
     view.kwargs = {'username': UserFactory().username}
     self.assertFalse(self.permission.has_permission(self.request, view))
 def test_has_permission_with_view_kwargs_as_owner_with_get(self):
     """ Owners always have permission to make GET actions. """
     user = UserFactory()
     self.request.user = user
     view = GenericAPIView()
     view.kwargs = {'username': user.username}
     self.assertTrue(self.permission.has_permission(self.request, view))
예제 #4
0
 def setUp(self):
     super(TestCuratorAuthorization, self).setUp()
     self.collection = self.make_collection()
     self.auth = self.auth_class()
     self.user = User.objects.get(pk=2519)
     self.profile = self.user.get_profile()
     self.view = GenericAPIView()
예제 #5
0
 def setUp(self):
     super(TestCanBeHeroAuthorization, self).setUp()
     self.collection = self.make_collection()
     self.auth = CanBeHeroAuthorization()
     self.user = UserProfile.objects.get(pk=2519)
     self.profile = self.user
     self.view = GenericAPIView()
def test_get_resource_name_from_model_serializer_class(settings, format_type,
                                                       pluralize_type, output):
    settings.JSON_API_FORMAT_TYPES = format_type
    settings.JSON_API_PLURALIZE_TYPES = pluralize_type

    view = GenericAPIView()
    view.serializer_class = BasicModelSerializer
    context = {"view": view}
    assert output == get_resource_name(context)
def test_get_resource_name_from_model_serializer_class_custom_resource_name(
        settings, format_type, pluralize_type):
    settings.JSON_API_FORMAT_TYPES = format_type
    settings.JSON_API_PLURALIZE_TYPES = pluralize_type

    view = GenericAPIView()
    view.serializer_class = BasicModelSerializer
    view.serializer_class.Meta.resource_name = "custom"

    context = {"view": view}
    assert "custom" == get_resource_name(context)
def test_get_resource_name_from_plain_serializer_class(settings, format_type,
                                                       pluralize_type):
    class PlainSerializer(serializers.Serializer):
        class Meta:
            resource_name = "custom"

    settings.JSON_API_FORMAT_TYPES = format_type
    settings.JSON_API_PLURALIZE_TYPES = pluralize_type

    view = GenericAPIView()
    view.serializer_class = PlainSerializer

    context = {"view": view}
    assert "custom" == get_resource_name(context)
예제 #9
0
 def setUp(self):
     super(TestFeedAuthorization, self).setUp()
     self.auth = self.auth_class()
     self.user = UserProfile.objects.get(pk=2519)
     self.profile = self.user
     self.view = GenericAPIView()
예제 #10
0
 def setUp(self):
     super(BaseTestOperatorAuthorization, self).setUp()
     self.auth = self.auth_class()
     self.user = UserProfile.objects.get(pk=2519)
     self.view = GenericAPIView()
예제 #11
0
 def setUp(self):
     super(TestIsOperatorPermission, self).setUp()
     self.auth = IsOperatorPermission()
     self.user = UserProfile.objects.get(pk=2519)
     self.profile = self.user
     self.view = GenericAPIView()