summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRamiC <olokki@gmail.com>2015-11-03 10:20:43 +0200
committerRamiC <olokki@gmail.com>2015-11-03 10:20:43 +0200
commite2519d64b3dd1f53555a184eb38b5138ea9bc2f6 (patch)
tree80498de53c4c0ad5f82feb35f2f9f40b6cf430c5
parentfa7886f89b99b52bcbed6b7d3577e7f1caace3df (diff)
downloadpyramid-e2519d64b3dd1f53555a184eb38b5138ea9bc2f6.tar.gz
pyramid-e2519d64b3dd1f53555a184eb38b5138ea9bc2f6.tar.bz2
pyramid-e2519d64b3dd1f53555a184eb38b5138ea9bc2f6.zip
Convert AuthTktCookieHelper time related parameters to int when applicable
-rw-r--r--pyramid/authentication.py9
-rw-r--r--pyramid/tests/test_authentication.py46
2 files changed, 50 insertions, 5 deletions
diff --git a/pyramid/authentication.py b/pyramid/authentication.py
index 0924b5901..9bf1de62e 100644
--- a/pyramid/authentication.py
+++ b/pyramid/authentication.py
@@ -855,9 +855,9 @@ class AuthTktCookieHelper(object):
self.cookie_name = cookie_name
self.secure = secure
self.include_ip = include_ip
- self.timeout = timeout
- self.reissue_time = reissue_time
- self.max_age = max_age
+ self.timeout = timeout if timeout is None else int(timeout)
+ self.reissue_time = reissue_time if reissue_time is None else int(reissue_time)
+ self.max_age = max_age if max_age is None else int(max_age)
self.wild_domain = wild_domain
self.parent_domain = parent_domain
self.domain = domain
@@ -977,8 +977,7 @@ class AuthTktCookieHelper(object):
Tokens are available in the returned identity when an auth_tkt is
found in the request and unpacked. Default: ``()``.
"""
- if max_age is None:
- max_age = self.max_age
+ max_age = self.max_age if max_age is None else int(max_age)
environ = request.environ
diff --git a/pyramid/tests/test_authentication.py b/pyramid/tests/test_authentication.py
index c7fc1c211..595a0eac8 100644
--- a/pyramid/tests/test_authentication.py
+++ b/pyramid/tests/test_authentication.py
@@ -600,6 +600,15 @@ class TestAuthTktCookieHelper(unittest.TestCase):
cookies.load(cookie)
return cookies.get('auth_tkt')
+ def test_init_cookie_str_reissue_invalid(self):
+ self.assertRaises(ValueError, self._makeOne, 'secret', reissue_time='invalid value')
+
+ def test_init_cookie_str_timeout_invalid(self):
+ self.assertRaises(ValueError, self._makeOne, 'secret', timeout='invalid value')
+
+ def test_init_cookie_str_max_age_invalid(self):
+ self.assertRaises(ValueError, self._makeOne, 'secret', max_age='invalid value')
+
def test_identify_nocookie(self):
helper = self._makeOne('secret')
request = self._makeRequest()
@@ -758,6 +767,12 @@ class TestAuthTktCookieHelper(unittest.TestCase):
result = helper.identify(request)
self.assertEqual(result, None)
+ def test_identify_cookie_str_timeout(self):
+ helper = self._makeOne('secret', timeout='1')
+ request = self._makeRequest({'HTTP_COOKIE':'auth_tkt=bogus'})
+ result = helper.identify(request)
+ self.assertEqual(result, None)
+
def test_identify_cookie_reissue(self):
import time
helper = self._makeOne('secret', timeout=10, reissue_time=0)
@@ -774,6 +789,22 @@ class TestAuthTktCookieHelper(unittest.TestCase):
self.assertEqual(len(response.headerlist), 3)
self.assertEqual(response.headerlist[0][0], 'Set-Cookie')
+ def test_identify_cookie_str_reissue(self):
+ import time
+ helper = self._makeOne('secret', timeout=10, reissue_time='0')
+ now = time.time()
+ helper.auth_tkt.timestamp = now
+ helper.now = now + 1
+ helper.auth_tkt.tokens = (text_('a'), )
+ request = self._makeRequest('bogus')
+ result = helper.identify(request)
+ self.assertTrue(result)
+ self.assertEqual(len(request.callbacks), 1)
+ response = DummyResponse()
+ request.callbacks[0](request, response)
+ self.assertEqual(len(response.headerlist), 3)
+ self.assertEqual(response.headerlist[0][0], 'Set-Cookie')
+
def test_identify_cookie_reissue_already_reissued_this_request(self):
import time
helper = self._makeOne('secret', timeout=10, reissue_time=0)
@@ -1060,6 +1091,16 @@ class TestAuthTktCookieHelper(unittest.TestCase):
def test_remember_max_age(self):
helper = self._makeOne('secret')
request = self._makeRequest()
+ result = helper.remember(request, 'userid', max_age=500)
+ values = self._parseHeaders(result)
+ self.assertEqual(len(result), 3)
+
+ self.assertEqual(values[0]['max-age'], '500')
+ self.assertTrue(values[0]['expires'])
+
+ def test_remember_str_max_age(self):
+ helper = self._makeOne('secret')
+ request = self._makeRequest()
result = helper.remember(request, 'userid', max_age='500')
values = self._parseHeaders(result)
self.assertEqual(len(result), 3)
@@ -1067,6 +1108,11 @@ class TestAuthTktCookieHelper(unittest.TestCase):
self.assertEqual(values[0]['max-age'], '500')
self.assertTrue(values[0]['expires'])
+ def test_remember_str_max_age_invalid(self):
+ helper = self._makeOne('secret')
+ request = self._makeRequest()
+ self.assertRaises(ValueError, helper.remember, request, 'userid', max_age='invalid value')
+
def test_remember_tokens(self):
helper = self._makeOne('secret')
request = self._makeRequest()