Fixed #14753 -- Fixed the test client to not raise an AssertionError when request.raw_post_data is accessed from a view it has fetched with GET. Thanks zimnyx for the report and ojii for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@15254 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
19bfdadc43
commit
190f6e5b45
|
@ -46,7 +46,7 @@ class FakePayload(object):
|
||||||
|
|
||||||
def read(self, num_bytes=None):
|
def read(self, num_bytes=None):
|
||||||
if num_bytes is None:
|
if num_bytes is None:
|
||||||
num_bytes = self.__len or 1
|
num_bytes = self.__len or 0
|
||||||
assert self.__len >= num_bytes, "Cannot read more than the available bytes from the HTTP incoming data."
|
assert self.__len >= num_bytes, "Cannot read more than the available bytes from the HTTP incoming data."
|
||||||
content = self.__content.read(num_bytes)
|
content = self.__content.read(num_bytes)
|
||||||
self.__len -= num_bytes
|
self.__len -= num_bytes
|
||||||
|
|
|
@ -879,3 +879,12 @@ class ResponseTemplateDeprecationTests(TestCase):
|
||||||
def test_response_no_template(self):
|
def test_response_no_template(self):
|
||||||
response = self.client.get("/test_client_regress/request_methods/")
|
response = self.client.get("/test_client_regress/request_methods/")
|
||||||
self.assertEqual(response.template, None)
|
self.assertEqual(response.template, None)
|
||||||
|
|
||||||
|
class RawPostDataTest(TestCase):
|
||||||
|
"Access to request.raw_post_data from the test client."
|
||||||
|
def test_raw_post_data(self):
|
||||||
|
# Refs #14753
|
||||||
|
try:
|
||||||
|
response = self.client.get("/test_client_regress/raw_post_data/")
|
||||||
|
except AssertionError:
|
||||||
|
self.fail("Accessing request.raw_post_data from a view fetched with GET by the test client shouldn't fail.")
|
||||||
|
|
|
@ -26,4 +26,5 @@ urlpatterns = patterns('',
|
||||||
(r'^parse_unicode_json/$', views.return_json_file),
|
(r'^parse_unicode_json/$', views.return_json_file),
|
||||||
(r'^check_headers/$', views.check_headers),
|
(r'^check_headers/$', views.check_headers),
|
||||||
(r'^check_headers_redirect/$', redirect_to, {'url': '/test_client_regress/check_headers/'}),
|
(r'^check_headers_redirect/$', redirect_to, {'url': '/test_client_regress/check_headers/'}),
|
||||||
|
(r'^raw_post_data/$', views.raw_post_data),
|
||||||
)
|
)
|
||||||
|
|
|
@ -91,3 +91,6 @@ def check_headers(request):
|
||||||
"A view that responds with value of the X-ARG-CHECK header"
|
"A view that responds with value of the X-ARG-CHECK header"
|
||||||
return HttpResponse('HTTP_X_ARG_CHECK: %s' % request.META.get('HTTP_X_ARG_CHECK', 'Undefined'))
|
return HttpResponse('HTTP_X_ARG_CHECK: %s' % request.META.get('HTTP_X_ARG_CHECK', 'Undefined'))
|
||||||
|
|
||||||
|
def raw_post_data(request):
|
||||||
|
"A view that is requested with GET and accesses request.raw_post_data. Refs #14753."
|
||||||
|
return HttpResponse(request.raw_post_data)
|
||||||
|
|
Loading…
Reference in New Issue