summaryrefslogtreecommitdiff
path: root/tests/regressiontests/cache
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2010-02-11 12:06:26 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2010-02-11 12:06:26 +0000
commit75ab212d12058494eaf171acfc762206d8a62d47 (patch)
treef0d731e709e14a2b480d3b636f2a3ad40636d44f /tests/regressiontests/cache
parentbe57541af11b7144de700978b9ea3b50f20ffd02 (diff)
Fixed #12399 -- Added handling for memcache timeouts longer than 30 days. Thanks to houdinihound for the report, and gciotta for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@12408 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'tests/regressiontests/cache')
-rw-r--r--tests/regressiontests/cache/tests.py16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/regressiontests/cache/tests.py b/tests/regressiontests/cache/tests.py
index 86d8ca27e0..6ca4d8bce8 100644
--- a/tests/regressiontests/cache/tests.py
+++ b/tests/regressiontests/cache/tests.py
@@ -324,6 +324,22 @@ class BaseCacheTests(object):
self.assertEqual(self.cache.get("key1"), None)
self.assertEqual(self.cache.get("key2"), None)
+ def test_long_timeout(self):
+ '''
+ Using a timeout greater than 30 days makes memcached think
+ it is an absolute expiration timestamp instead of a relative
+ offset. Test that we honour this convention. Refs #12399.
+ '''
+ self.cache.set('key1', 'eggs', 60*60*24*30 + 1) #30 days + 1 second
+ self.assertEqual(self.cache.get('key1'), 'eggs')
+
+ self.cache.add('key2', 'ham', 60*60*24*30 + 1)
+ self.assertEqual(self.cache.get('key2'), 'ham')
+
+ self.cache.set_many({'key3': 'sausage', 'key4': 'lobster bisque'}, 60*60*24*30 + 1)
+ self.assertEqual(self.cache.get('key3'), 'sausage')
+ self.assertEqual(self.cache.get('key4'), 'lobster bisque')
+
class DBCacheTests(unittest.TestCase, BaseCacheTests):
def setUp(self):
management.call_command('createcachetable', 'test_cache_table', verbosity=0, interactive=False)