mirror of
https://github.com/django/django.git
synced 2025-10-24 06:06:09 +00:00
Fixed #5076 -- Properly decode POSTs with non-utf-8 payload encoding
Thanks daniel at blogg.se for the report and Aymeric Augustin for his assistance on the patch.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
# -*- encoding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import time
|
||||
@@ -352,6 +353,20 @@ class RequestsTests(unittest.TestCase):
|
||||
self.assertRaises(Exception, lambda: request.body)
|
||||
self.assertEqual(request.POST, {})
|
||||
|
||||
def test_alternate_charset_POST(self):
|
||||
"""
|
||||
Test a POST with non-utf-8 payload encoding.
|
||||
"""
|
||||
from django.utils.http import urllib_parse
|
||||
payload = FakePayload(urllib_parse.urlencode({'key': 'España'.encode('latin-1')}))
|
||||
request = WSGIRequest({
|
||||
'REQUEST_METHOD': 'POST',
|
||||
'CONTENT_LENGTH': len(payload),
|
||||
'CONTENT_TYPE': 'application/x-www-form-urlencoded; charset=iso-8859-1',
|
||||
'wsgi.input': payload,
|
||||
})
|
||||
self.assertEqual(request.POST, {'key': ['España']})
|
||||
|
||||
def test_body_after_POST_multipart(self):
|
||||
"""
|
||||
Reading body after parsing multipart is not allowed
|
||||
|
||||
Reference in New Issue
Block a user