1
0
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:
Claude Paroz
2012-10-29 20:33:00 +01:00
parent 9741912a9a
commit 6de6988f99
2 changed files with 39 additions and 0 deletions

View File

@@ -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