diff options
| author | RamiC <olokki@gmail.com> | 2015-11-03 10:20:43 +0200 |
|---|---|---|
| committer | RamiC <olokki@gmail.com> | 2015-11-03 10:20:43 +0200 |
| commit | e2519d64b3dd1f53555a184eb38b5138ea9bc2f6 (patch) | |
| tree | 80498de53c4c0ad5f82feb35f2f9f40b6cf430c5 | |
| parent | fa7886f89b99b52bcbed6b7d3577e7f1caace3df (diff) | |
| download | pyramid-e2519d64b3dd1f53555a184eb38b5138ea9bc2f6.tar.gz pyramid-e2519d64b3dd1f53555a184eb38b5138ea9bc2f6.tar.bz2 pyramid-e2519d64b3dd1f53555a184eb38b5138ea9bc2f6.zip | |
Convert AuthTktCookieHelper time related parameters to int when applicable
| -rw-r--r-- | pyramid/authentication.py | 9 | ||||
| -rw-r--r-- | pyramid/tests/test_authentication.py | 46 |
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() |
