From c71587f69033d439d3128cfda5603a6153b67667 Mon Sep 17 00:00:00 2001 From: gsvr Date: Thu, 5 Apr 2018 14:43:27 +0200 Subject: [PATCH] Import coreapi from rest_framework.compat, not directly. Bugfix. https://github.com/encode/django-rest-framework/issues/5918 --- rest_framework/authtoken/views.py | 46 +++++++++++++++---------------- tests/test_renderers.py | 2 +- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/rest_framework/authtoken/views.py b/rest_framework/authtoken/views.py index ff53c01baf..a8c751d51d 100644 --- a/rest_framework/authtoken/views.py +++ b/rest_framework/authtoken/views.py @@ -1,8 +1,7 @@ -import coreapi -import coreschema from rest_framework import parsers, renderers from rest_framework.authtoken.models import Token from rest_framework.authtoken.serializers import AuthTokenSerializer +from rest_framework.compat import coreapi, coreschema from rest_framework.response import Response from rest_framework.schemas import ManualSchema from rest_framework.views import APIView @@ -14,29 +13,30 @@ class ObtainAuthToken(APIView): parser_classes = (parsers.FormParser, parsers.MultiPartParser, parsers.JSONParser,) renderer_classes = (renderers.JSONRenderer,) serializer_class = AuthTokenSerializer - schema = ManualSchema( - fields=[ - coreapi.Field( - name="username", - required=True, - location='form', - schema=coreschema.String( - title="Username", - description="Valid username for authentication", + if coreapi is not None and coreschema is not None: + schema = ManualSchema( + fields=[ + coreapi.Field( + name="username", + required=True, + location='form', + schema=coreschema.String( + title="Username", + description="Valid username for authentication", + ), ), - ), - coreapi.Field( - name="password", - required=True, - location='form', - schema=coreschema.String( - title="Password", - description="Valid password for authentication", + coreapi.Field( + name="password", + required=True, + location='form', + schema=coreschema.String( + title="Password", + description="Valid password for authentication", + ), ), - ), - ], - encoding="application/json", - ) + ], + encoding="application/json", + ) def post(self, request, *args, **kwargs): serializer = self.serializer_class(data=request.data, diff --git a/tests/test_renderers.py b/tests/test_renderers.py index ba8400c065..667631f294 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -14,8 +14,8 @@ from django.utils.safestring import SafeText from django.utils.translation import ugettext_lazy as _ -import coreapi from rest_framework import permissions, serializers, status +from rest_framework.compat import coreapi from rest_framework.renderers import ( AdminRenderer, BaseRenderer, BrowsableAPIRenderer, DocumentationRenderer, HTMLFormRenderer, JSONRenderer, SchemaJSRenderer, StaticHTMLRenderer