From db594f90ba684f45bfc8033fb190afdf567ad9f0 Mon Sep 17 00:00:00 2001 From: Jannis Leidel Date: Fri, 29 Jul 2011 09:39:23 +0000 Subject: [PATCH] Fixed #16533 -- Stopped the memcache cache backend from raising an exception if the timeout value isn't an integer. Thanks, Jeff Balogh. git-svn-id: http://code.djangoproject.com/svn/django/trunk@16556 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/core/cache/backends/memcached.py | 2 +- tests/regressiontests/cache/tests.py | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/django/core/cache/backends/memcached.py b/django/core/cache/backends/memcached.py index 1e1d97ed35..aa1b4513c0 100644 --- a/django/core/cache/backends/memcached.py +++ b/django/core/cache/backends/memcached.py @@ -46,7 +46,7 @@ class BaseMemcachedCache(BaseCache): # # This means that we have to switch to absolute timestamps. timeout += int(time.time()) - return timeout + return int(timeout) def add(self, key, value, timeout=0, version=None): key = self.make_key(key, version=version) diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py index afb5a15b41..6a5201ffeb 100644 --- a/tests/regressiontests/cache/tests.py +++ b/tests/regressiontests/cache/tests.py @@ -408,6 +408,11 @@ class BaseCacheTests(object): self.assertEqual(self.cache.get('key3'), 'sausage') self.assertEqual(self.cache.get('key4'), 'lobster bisque') + def test_float_timeout(self): + # Make sure a timeout given as a float doesn't crash anything. + self.cache.set("key1", "spam", 100.2) + self.assertEqual(self.cache.get("key1"), "spam") + def perform_cull_test(self, initial_count, final_count): """This is implemented as a utility method, because only some of the backends implement culling. The culling algorithm also varies slightly, so the final