summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-01-11 21:09:33 +0100
committerClaude Paroz <claude@2xlibre.net>2013-01-11 21:14:39 +0100
commit1d03ff06bbcc726c815f26f79067692019b2c71a (patch)
tree99acc63884f278d0026666dbff4463172433403a
parentb86c3ddce88390dacc04094fbdce1b722fb8127b (diff)
[1.5.x] Fixed #19585 -- Fixed loading cookie value as a dict
This regression was introduced by the 'unicode_literals' patch. Backport of f08e739bc2 from master.
-rw-r--r--django/http/cookie.py5
-rw-r--r--tests/regressiontests/httpwrappers/tests.py4
2 files changed, 8 insertions, 1 deletions
diff --git a/django/http/cookie.py b/django/http/cookie.py
index 78adb09ce8..50ff549caf 100644
--- a/django/http/cookie.py
+++ b/django/http/cookie.py
@@ -1,6 +1,7 @@
from __future__ import absolute_import, unicode_literals
from django.utils.encoding import force_str
+from django.utils import six
from django.utils.six.moves import http_cookies
@@ -48,7 +49,9 @@ else:
if not _cookie_allows_colon_in_names:
def load(self, rawdata):
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:
del self[key]
diff --git a/tests/regressiontests/httpwrappers/tests.py b/tests/regressiontests/httpwrappers/tests.py
index d26a728e7b..83de972ad9 100644
--- a/tests/regressiontests/httpwrappers/tests.py
+++ b/tests/regressiontests/httpwrappers/tests.py
@@ -588,3 +588,7 @@ class CookieTests(unittest.TestCase):
c['name']['httponly'] = True
self.assertTrue(c['name']['httponly'])
+ def test_load_dict(self):
+ c = SimpleCookie()
+ c.load({'name': 'val'})
+ self.assertEqual(c['name'].value, 'val')