diff options
| author | Nicolas NoƩ <nicolas@niconoe.org> | 2018-04-27 23:48:35 +0200 |
|---|---|---|
| committer | Tim Graham <timograham@gmail.com> | 2018-04-27 17:48:35 -0400 |
| commit | 3246ad106517e61437f80e8ef3c9d216754039e7 (patch) | |
| tree | 29fba867b071b61c9cfcc1d33d4662c91f1e40fa /tests/cache | |
| parent | 8e960c5aba70d834f54b0bc66f2fb5e922a35b41 (diff) | |
Fixed #27480 -- Added cache.touch().
Diffstat (limited to 'tests/cache')
| -rw-r--r-- | tests/cache/tests.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/cache/tests.py b/tests/cache/tests.py index 95fa5d68e6..890f8b6a9e 100644 --- a/tests/cache/tests.py +++ b/tests/cache/tests.py @@ -141,6 +141,10 @@ class DummyCacheTests(SimpleTestCase): with self.assertRaises(ValueError): cache.decr('does_not_exist') + def test_touch(self): + """Dummy cache can't do touch().""" + self.assertIs(cache.touch('whatever'), False) + def test_data_types(self): "All data types are ignored equally by the dummy cache" stuff = { @@ -427,6 +431,23 @@ class BaseCacheTests: self.assertEqual(cache.get("expire2"), "newvalue") self.assertFalse(cache.has_key("expire3")) + def test_touch(self): + # cache.touch() updates the timeout. + cache.set('expire1', 'very quickly', timeout=1) + self.assertIs(cache.touch('expire1', timeout=4), True) + time.sleep(2) + self.assertTrue(cache.has_key('expire1')) + time.sleep(3) + self.assertFalse(cache.has_key('expire1')) + + # cache.touch() works without the timeout argument. + cache.set('expire1', 'very quickly', timeout=1) + self.assertIs(cache.touch('expire1'), True) + time.sleep(2) + self.assertTrue(cache.has_key('expire1')) + + self.assertIs(cache.touch('nonexistent'), False) + def test_unicode(self): # Unicode values can be cached stuff = { @@ -549,6 +570,11 @@ class BaseCacheTests: self.assertEqual(cache.get('key3'), 'sausage') self.assertEqual(cache.get('key4'), 'lobster bisque') + cache.set('key5', 'belgian fries', timeout=1) + cache.touch('key5', timeout=None) + time.sleep(2) + self.assertEqual(cache.get('key5'), 'belgian fries') + def test_zero_timeout(self): """ Passing in zero into timeout results in a value that is not cached @@ -563,6 +589,10 @@ class BaseCacheTests: self.assertIsNone(cache.get('key3')) self.assertIsNone(cache.get('key4')) + cache.set('key5', 'belgian fries', timeout=5) + cache.touch('key5', timeout=0) + self.assertIsNone(cache.get('key5')) + def test_float_timeout(self): # Make sure a timeout given as a float doesn't crash anything. cache.set("key1", "spam", 100.2) |
