Checklist
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.
Checklist
masterbranch of Django REST framework.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:
This works because request.stream returns a StringIO instance.
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.