[Python-checkins] cpython: Fix Issue2193 - Allow ":" character in Cookie NAME values

senthil.kumaran python-checkins at python.org
Sun Apr 22 03:20:01 CEST 2012


http://hg.python.org/cpython/rev/57ec2e6cd70a
changeset:   76457:57ec2e6cd70a
parent:      76454:0356103cde28
user:        Senthil Kumaran <senthil at uthcode.com>
date:        Sun Apr 22 09:19:04 2012 +0800
summary:
  Fix Issue2193 - Allow ":" character in Cookie NAME values

files:
  Lib/http/cookies.py           |  2 +-
  Lib/test/test_http_cookies.py |  9 +++++++++
  Misc/NEWS                     |  2 ++
  3 files changed, 12 insertions(+), 1 deletions(-)


diff --git a/Lib/http/cookies.py b/Lib/http/cookies.py
--- a/Lib/http/cookies.py
+++ b/Lib/http/cookies.py
@@ -159,7 +159,7 @@
 #       _LegalChars       is the list of chars which don't require "'s
 #       _Translator       hash-table for fast quoting
 #
-_LegalChars       = string.ascii_letters + string.digits + "!#$%&'*+-.^_`|~"
+_LegalChars       = string.ascii_letters + string.digits + "!#$%&'*+-.^_`|~:"
 _Translator       = {
     '\000' : '\\000',  '\001' : '\\001',  '\002' : '\\002',
     '\003' : '\\003',  '\004' : '\\004',  '\005' : '\\005',
diff --git a/Lib/test/test_http_cookies.py b/Lib/test/test_http_cookies.py
--- a/Lib/test/test_http_cookies.py
+++ b/Lib/test/test_http_cookies.py
@@ -34,6 +34,15 @@
              'dict': {'keebler' : 'E=mc2'},
              'repr': "<SimpleCookie: keebler='E=mc2'>",
              'output': 'Set-Cookie: keebler=E=mc2'},
+
+            # Cookies with ':' character in their name. Though not mentioned in
+            # RFC, servers / browsers allow it.
+
+             {'data': 'key:term=value:term',
+             'dict': {'key:term' : 'value:term'},
+             'repr': "<SimpleCookie: key:term='value:term'>",
+             'output': 'Set-Cookie: key:term=value:term'},
+
         ]
 
         for case in cases:
diff --git a/Misc/NEWS b/Misc/NEWS
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -61,6 +61,8 @@
 Library
 -------
 
+- Issue #2193: Allow ":" character in Cookie NAME values.
+
 - Issue #14629: tokenizer.detect_encoding will specify the filename in the
   SyntaxError exception if found at readline.__self__.name.
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list