-
-
Notifications
You must be signed in to change notification settings - Fork 7k
Closed
Description
Checklist
- I have verified that that issue exists against the
master
branch of Django REST framework. - I have searched for similar issues in both open and closed tickets and cannot find a duplicate.
- This is not a usage question. (Those should be directed to the discussion group instead.)
- This cannot be dealt with as a third party library. (We prefer new functionality to be in the form of third party libraries where possible.)
- I have reduced the issue to the simplest possible case.
- I have included a failing test as a pull request. (If you are unable to do so we can still accept the issue.)
Steps to reproduce
Make an Authentication class:
class AttributeErrorAuthentication(BaseAuthentication):
def authenticate(self, request):
raise AttributeError
def authenticate_header(self, request):
return 'NotImportant'
Set it in DEFAULT_AUTHENTICATION_CLASSES setting:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'api.authentication.AttributeErrorAuthentication',
)
}
Make a simple view:
class UserView(generics.CreateAPIView, generics.RetrieveAPIView, generics.UpdateAPIView):
serializer_class = UserSerializer
def get_object(self):
return self.request.user
Include an empty DefaultRouter and the UserView in the same urlpatterns :
router = DefaultRouter()
urlpatterns = [
url(r'^', include(router.urls)),
url(r'^user/$', views.UserView.as_view(), name='user-detail'),
]
or register something on it, doesn't matter I think.
Make a request to http://localhost:8000/api/
.
Expected behavior
Show AttributeError traceback, HTTP 500 server error
Actual behavior
No traceback, HTTP 200 OK response.
On the /user/
endpoint I got a traceback, but on api_root, nothing.
Metadata
Metadata
Assignees
Labels
No labels