summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hellkamp <marc@gsites.de>2015-10-11 21:00:05 +0200
committerMarcel Hellkamp <marc@gsites.de>2015-10-11 21:00:05 +0200
commitba07d4055cabb0bfe69681da7ea6a46efb6385aa (patch)
tree101c9ec2bfde7c11e529261b28fe44614c2e5758
parent5b893e2c26d00b28ff85e45d8ede3c54cc7520cf (diff)
parentc12ec2e04860c7c1c5b4a9d244bcd009c3f5c538 (diff)
downloadbottle-ba07d4055cabb0bfe69681da7ea6a46efb6385aa.tar.gz
Merge pull request #775 from netman92/test-improvements
Test of cookie name and value length
-rw-r--r--bottle.py3
-rwxr-xr-xtest/test_environ.py12
2 files changed, 12 insertions, 3 deletions
diff --git a/bottle.py b/bottle.py
index 1508900..6acbea6 100644
--- a/bottle.py
+++ b/bottle.py
@@ -1741,7 +1741,8 @@ class BaseResponse(object):
elif not isinstance(value, basestring):
raise TypeError('Secret key missing for non-string Cookie.')
- if len(value) > 4096: raise ValueError('Cookie value to long.')
+ if len(name) > 4096: raise ValueError('Cookie name is too long.')
+ if len(value) > 4096: raise ValueError('Cookie value is too long.')
self._cookies[name] = value
for key, value in options.items():
diff --git a/test/test_environ.py b/test/test_environ.py
index 7141f24..ad0d0b6 100755
--- a/test/test_environ.py
+++ b/test/test_environ.py
@@ -594,6 +594,14 @@ class TestResponse(unittest.TestCase):
self.assertEqual(cookies[0], 'name1=value; Max-Age=5')
self.assertEqual(cookies[1], 'name2="value 2"; Path=/foo')
+ def test_set_cookie_value_long_string(self):
+ r = BaseResponse()
+ self.assertRaises(ValueError, r.set_cookie, name='test', value='x' * 4097)
+
+ def test_set_cookie_name_long_string(self):
+ r = BaseResponse()
+ self.assertRaises(ValueError, r.set_cookie, name='x' * 4097, value='simple_value')
+
def test_set_cookie_maxage(self):
import datetime
r = BaseResponse()
@@ -689,11 +697,11 @@ class TestResponse(unittest.TestCase):
response = BaseResponse()
now = datetime.datetime.now()
response.expires = now
-
+
def seconds(a, b):
td = max(a,b) - min(a,b)
return td.days*360*24 + td.seconds
-
+
self.assertEqual(0, seconds(response.expires, now))
now2 = datetime.datetime.utcfromtimestamp(
parse_date(response.headers['Expires']))