Fixed #19585 -- Fixed loading cookie value as a dict
This regression was introduced by the 'unicode_literals' patch.
This commit is contained in:
parent
4e2e8f39d1
commit
f08e739bc2
|
@ -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]
|
||||||
|
|
||||||
|
|
|
@ -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')
|
||||||
|
|
Loading…
Reference in New Issue