Unverified Kaydet (Commit) d5a2377c authored tarafından Berker Peksag's avatar Berker Peksag Kaydeden (comit) GitHub

bpo-991266: Fix quoting of Comment attribute of SimpleCookie (GH-6555)

üst b81ca28b
...@@ -408,6 +408,8 @@ class Morsel(dict): ...@@ -408,6 +408,8 @@ class Morsel(dict):
append("%s=%s" % (self._reserved[key], _getdate(value))) append("%s=%s" % (self._reserved[key], _getdate(value)))
elif key == "max-age" and isinstance(value, int): elif key == "max-age" and isinstance(value, int):
append("%s=%d" % (self._reserved[key], value)) append("%s=%d" % (self._reserved[key], value))
elif key == "comment" and isinstance(value, str):
append("%s=%s" % (self._reserved[key], _quote(value)))
elif key in self._flags: elif key in self._flags:
if value: if value:
append(str(self._reserved[key])) append(str(self._reserved[key]))
......
...@@ -220,6 +220,16 @@ class CookieTests(unittest.TestCase): ...@@ -220,6 +220,16 @@ class CookieTests(unittest.TestCase):
with self.assertRaises(cookies.CookieError): with self.assertRaises(cookies.CookieError):
C.load(rawdata) C.load(rawdata)
def test_comment_quoting(self):
c = cookies.SimpleCookie()
c['foo'] = '\N{COPYRIGHT SIGN}'
self.assertEqual(str(c['foo']), 'Set-Cookie: foo="\\251"')
c['foo']['comment'] = 'comment \N{COPYRIGHT SIGN}'
self.assertEqual(
str(c['foo']),
'Set-Cookie: foo="\\251"; Comment="comment \\251"'
)
class MorselTests(unittest.TestCase): class MorselTests(unittest.TestCase):
"""Tests for the Morsel object.""" """Tests for the Morsel object."""
......
Fix quoting of the ``Comment`` attribute of :class:`http.cookies.SimpleCookie`.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment