aboutsummaryrefslogtreecommitdiffstats
path: root/tests/browsable_api/views.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/browsable_api/views.py')
-rw-r--r--tests/browsable_api/views.py27
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, )