[py3] Used smart_str to prevent regressions in http handling

This commit is contained in:
Claude Paroz 2012-08-11 15:29:29 +02:00
parent f10a1b0641
commit 09c589810d
1 changed files with 4 additions and 4 deletions

View File

@ -61,14 +61,14 @@ else:
if not _cookie_allows_colon_in_names: if not _cookie_allows_colon_in_names:
def load(self, rawdata): def load(self, rawdata):
self.bad_cookies = set() self.bad_cookies = set()
super(SimpleCookie, self).load(str(rawdata)) super(SimpleCookie, self).load(smart_str(rawdata))
for key in self.bad_cookies: for key in self.bad_cookies:
del self[key] del self[key]
# override private __set() method: # override private __set() method:
# (needed for using our Morsel, and for laxness with CookieError # (needed for using our Morsel, and for laxness with CookieError
def _BaseCookie__set(self, key, real_value, coded_value): def _BaseCookie__set(self, key, real_value, coded_value):
key = str(key) key = smart_str(key)
try: try:
M = self.get(key, Morsel()) M = self.get(key, Morsel())
M.set(key, real_value, coded_value) M.set(key, real_value, coded_value)
@ -85,7 +85,7 @@ from django.core.files import uploadhandler
from django.http.multipartparser import MultiPartParser from django.http.multipartparser import MultiPartParser
from django.http.utils import * from django.http.utils import *
from django.utils.datastructures import MultiValueDict, ImmutableList from django.utils.datastructures import MultiValueDict, ImmutableList
from django.utils.encoding import smart_bytes, iri_to_uri, force_text from django.utils.encoding import smart_bytes, smart_str, iri_to_uri, force_text
from django.utils.http import cookie_date from django.utils.http import cookie_date
from django.utils import six from django.utils import six
from django.utils import timezone from django.utils import timezone
@ -137,7 +137,7 @@ def build_request_repr(request, path_override=None, GET_override=None,
except: except:
meta = '<could not parse>' meta = '<could not parse>'
path = path_override if path_override is not None else request.path path = path_override if path_override is not None else request.path
return str('<%s\npath:%s,\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' % return smart_str('<%s\npath:%s,\nGET:%s,\nPOST:%s,\nCOOKIES:%s,\nMETA:%s>' %
(request.__class__.__name__, (request.__class__.__name__,
path, path,
six.text_type(get), six.text_type(get),