summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTORS.txt2
-rw-r--r--pyramid/session.py2
-rw-r--r--pyramid/tests/test_session.py16
3 files changed, 19 insertions, 1 deletions
diff --git a/CONTRIBUTORS.txt b/CONTRIBUTORS.txt
index 2ef07af75..4edf1b4e9 100644
--- a/CONTRIBUTORS.txt
+++ b/CONTRIBUTORS.txt
@@ -254,3 +254,5 @@ Contributors
- Jesse Dhillon, 2015/10/07
- Amos Latteier, 2015/10/22
+
+- Rami Chousein, 2015/10/28
diff --git a/pyramid/session.py b/pyramid/session.py
index c4cfc1949..525636688 100644
--- a/pyramid/session.py
+++ b/pyramid/session.py
@@ -244,7 +244,7 @@ def BaseCookieSessionFactory(
_cookie_secure = secure
_cookie_httponly = httponly
_cookie_on_exception = set_on_exception
- _timeout = timeout
+ _timeout = timeout if timeout is None else int(timeout)
_reissue_time = reissue_time
# dirty flag
diff --git a/pyramid/tests/test_session.py b/pyramid/tests/test_session.py
index eac6593d9..c3a1f3055 100644
--- a/pyramid/tests/test_session.py
+++ b/pyramid/tests/test_session.py
@@ -62,6 +62,22 @@ class SharedCookieSessionTests(object):
session = self._makeOne(request, timeout=None)
self.assertEqual(dict(session), {'state': 1})
+ def test_timeout_str(self):
+ import time
+ request = testing.DummyRequest()
+ cookieval = self._serialize((time.time() - 5, 0, {'state': 1}))
+ request.cookies['session'] = cookieval
+ session = self._makeOne(request, timeout='1')
+ self.assertEqual(dict(session), {})
+
+ def test_timeout_invalid(self):
+ import time
+ request = testing.DummyRequest()
+ cookieval = self._serialize((time.time() - 5, 0, {'state': 1}))
+ request.cookies['session'] = cookieval
+ self.assertRaises(ValueError, self._makeOne, request, timeout='error')
+
+
def test_changed(self):
request = testing.DummyRequest()
session = self._makeOne(request)