diff options
author | Marcel Hellkamp <marc@gsites.de> | 2015-10-11 21:00:05 +0200 |
---|---|---|
committer | Marcel Hellkamp <marc@gsites.de> | 2015-10-11 21:00:05 +0200 |
commit | ba07d4055cabb0bfe69681da7ea6a46efb6385aa (patch) | |
tree | 101c9ec2bfde7c11e529261b28fe44614c2e5758 | |
parent | 5b893e2c26d00b28ff85e45d8ede3c54cc7520cf (diff) | |
parent | c12ec2e04860c7c1c5b4a9d244bcd009c3f5c538 (diff) | |
download | bottle-ba07d4055cabb0bfe69681da7ea6a46efb6385aa.tar.gz |
Merge pull request #775 from netman92/test-improvements
Test of cookie name and value length
-rw-r--r-- | bottle.py | 3 | ||||
-rwxr-xr-x | test/test_environ.py | 12 |
2 files changed, 12 insertions, 3 deletions
@@ -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'])) |