Fixed #19585 -- Fixed loading cookie value as a dict

This regression was introduced by the 'unicode_literals' patch.
This commit is contained in:
Claude Paroz 2013-01-11 21:09:33 +01:00
parent 4e2e8f39d1
commit f08e739bc2
2 changed files with 8 additions and 1 deletions

View File

@ -1,6 +1,7 @@
from __future__ import absolute_import, unicode_literals from __future__ import absolute_import, unicode_literals
from django.utils.encoding import force_str from django.utils.encoding import force_str
from django.utils import six
from django.utils.six.moves import http_cookies from django.utils.six.moves import http_cookies
@ -48,7 +49,9 @@ 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(force_str(rawdata)) if not six.PY3 and isinstance(rawdata, six.text_type):
rawdata = force_str(rawdata)
super(SimpleCookie, self).load(rawdata)
for key in self.bad_cookies: for key in self.bad_cookies:
del self[key] del self[key]

View File

@ -588,3 +588,7 @@ class CookieTests(unittest.TestCase):
c['name']['httponly'] = True c['name']['httponly'] = True
self.assertTrue(c['name']['httponly']) self.assertTrue(c['name']['httponly'])
def test_load_dict(self):
c = SimpleCookie()
c.load({'name': 'val'})
self.assertEqual(c['name'].value, 'val')