-
-
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
On a Custom authentication scheme, try to access the request.stream as a stream.
Expected behavior
A stream instance is always returned
Actual behavior
A request instance is returned if request._read_started is false and a Stream is returned when it's true.
Example:
def authenticate(self, request):
foo = request.body
bar = request.stream
value = request.stream.getvalue()
This works because request.stream returns a StringIO instance.
def authenticate(self, request):
# foo = request.body
# bar = request.stream
value = request.stream.getvalue()
This doesn't because request.stream returns a Request instance (WSGIRequest in my case)
Removing this conditional solves the problem in this case, but i don't know what other implications it has.
Metadata
Metadata
Assignees
Labels
No labels