mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-02 20:54:42 +03:00
request.DATA should use empty QueryDict for no data, not None.
This commit is contained in:
parent
9d3153ed04
commit
af686ec11a
|
@ -11,7 +11,9 @@ The wrapped request then offers a richer API, in particular :
|
|||
"""
|
||||
from __future__ import unicode_literals
|
||||
from django.conf import settings
|
||||
from django.http import QueryDict
|
||||
from django.http.multipartparser import parse_header
|
||||
from django.utils.datastructures import MultiValueDict
|
||||
from rest_framework import HTTP_HEADER_ENCODING
|
||||
from rest_framework import exceptions
|
||||
from rest_framework.compat import BytesIO
|
||||
|
@ -297,7 +299,9 @@ class Request(object):
|
|||
media_type = self.content_type
|
||||
|
||||
if stream is None or media_type is None:
|
||||
return (None, None)
|
||||
empty_data = QueryDict('', self._request._encoding)
|
||||
empty_files = MultiValueDict()
|
||||
return (empty_data, empty_files)
|
||||
|
||||
parser = self.negotiator.select_parser(self, self.parsers)
|
||||
|
||||
|
@ -311,7 +315,8 @@ class Request(object):
|
|||
try:
|
||||
return (parsed.data, parsed.files)
|
||||
except AttributeError:
|
||||
return (parsed, None)
|
||||
empty_files = MultiValueDict()
|
||||
return (parsed, empty_files)
|
||||
|
||||
def _authenticate(self):
|
||||
"""
|
||||
|
|
|
@ -62,17 +62,17 @@ class TestMethodOverloading(TestCase):
|
|||
class TestContentParsing(TestCase):
|
||||
def test_standard_behaviour_determines_no_content_GET(self):
|
||||
"""
|
||||
Ensure request.DATA returns None for GET request with no content.
|
||||
Ensure request.DATA returns empty QueryDict for GET request.
|
||||
"""
|
||||
request = Request(factory.get('/'))
|
||||
self.assertEqual(request.DATA, None)
|
||||
self.assertEqual(request.DATA, {})
|
||||
|
||||
def test_standard_behaviour_determines_no_content_HEAD(self):
|
||||
"""
|
||||
Ensure request.DATA returns None for HEAD request.
|
||||
Ensure request.DATA returns empty QueryDict for HEAD request.
|
||||
"""
|
||||
request = Request(factory.head('/'))
|
||||
self.assertEqual(request.DATA, None)
|
||||
self.assertEqual(request.DATA, {})
|
||||
|
||||
def test_request_DATA_with_form_content(self):
|
||||
"""
|
||||
|
|
Loading…
Reference in New Issue
Block a user