diff options
Diffstat (limited to 'tests/browsable_api/views.py')
| -rw-r--r-- | tests/browsable_api/views.py | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/tests/browsable_api/views.py b/tests/browsable_api/views.py index 000f4e80..f06f7c40 100644 --- a/tests/browsable_api/views.py +++ b/tests/browsable_api/views.py @@ -1,9 +1,14 @@  from __future__ import unicode_literals  from rest_framework.views import APIView +from rest_framework.viewsets import ModelViewSet  from rest_framework import authentication  from rest_framework import renderers  from rest_framework.response import Response +from rest_framework.renderers import BrowsableAPIRenderer, JSONRenderer +from rest_framework.versioning import NamespaceVersioning +from .models import Foo, Bar +from .serializers import FooSerializer, BarSerializer  class MockView(APIView): @@ -13,3 +18,25 @@ class MockView(APIView):      def get(self, request):          return Response({'a': 1, 'b': 2, 'c': 3}) + + +class SerializerClassMixin(object): +    def get_serializer_class(self): +        # Get base name of serializer +        self.request.version +        return self.serializer_class + + +class FooViewSet(SerializerClassMixin, ModelViewSet): +    versioning_class = NamespaceVersioning +    model = Foo +    queryset = Foo.objects.all() +    serializer_class = FooSerializer +    renderer_classes = (BrowsableAPIRenderer, JSONRenderer) + + +class BarViewSet(SerializerClassMixin, ModelViewSet): +    model = Bar +    queryset = Bar.objects.all() +    serializer_class = BarSerializer +    renderer_classes = (BrowsableAPIRenderer, ) | 
