diff options
Diffstat (limited to 'tests/test_ttl.py')
-rw-r--r-- | tests/test_ttl.py | 90 |
1 files changed, 40 insertions, 50 deletions
diff --git a/tests/test_ttl.py b/tests/test_ttl.py index 0927f5f..e8a086c 100644 --- a/tests/test_ttl.py +++ b/tests/test_ttl.py @@ -19,42 +19,18 @@ class Timer: self.time += 1 -class TTLCacheTest(unittest.TestCase, CacheTestMixin): - - def cache(self, maxsize, ttl=0, missing=None, getsizeof=None): - return TTLCache(maxsize, ttl, timer=Timer(), missing=missing, - getsizeof=getsizeof) +class TTLTestCache(TTLCache): + def __init__(self, maxsize, ttl=0, missing=None, getsizeof=None): + TTLCache.__init__(self, maxsize, ttl=ttl, timer=Timer(), + missing=missing, getsizeof=getsizeof) - def test_lru(self): - cache = self.cache(maxsize=2) - - cache[1] = 1 - cache[2] = 2 - cache[3] = 3 - self.assertEqual(len(cache), 2) - self.assertNotIn(1, cache) - self.assertEqual(cache[2], 2) - self.assertEqual(cache[3], 3) - - cache[2] - cache[4] = 4 - self.assertEqual(len(cache), 2) - self.assertNotIn(1, cache) - self.assertEqual(cache[2], 2) - self.assertNotIn(3, cache) - self.assertEqual(cache[4], 4) +class TTLCacheTest(unittest.TestCase, CacheTestMixin): - cache[5] = 5 - self.assertEqual(len(cache), 2) - self.assertNotIn(1, cache) - self.assertNotIn(2, cache) - self.assertNotIn(3, cache) - self.assertEqual(cache[4], 4) - self.assertEqual(cache[5], 5) + Cache = TTLTestCache def test_ttl(self): - cache = self.cache(maxsize=2, ttl=1) + cache = TTLCache(maxsize=2, ttl=1, timer=Timer()) self.assertEqual(0, cache.timer()) self.assertEqual(1, cache.ttl) @@ -108,8 +84,36 @@ class TTLCacheTest(unittest.TestCase, CacheTestMixin): with self.assertRaises(KeyError): del cache[3] - def test_expire(self): - cache = self.cache(maxsize=3, ttl=2) + def test_ttl_lru(self): + cache = TTLCache(maxsize=2, ttl=0, timer=Timer()) + + cache[1] = 1 + cache[2] = 2 + cache[3] = 3 + + self.assertEqual(len(cache), 2) + self.assertNotIn(1, cache) + self.assertEqual(cache[2], 2) + self.assertEqual(cache[3], 3) + + cache[2] + cache[4] = 4 + self.assertEqual(len(cache), 2) + self.assertNotIn(1, cache) + self.assertEqual(cache[2], 2) + self.assertNotIn(3, cache) + self.assertEqual(cache[4], 4) + + cache[5] = 5 + self.assertEqual(len(cache), 2) + self.assertNotIn(1, cache) + self.assertNotIn(2, cache) + self.assertNotIn(3, cache) + self.assertEqual(cache[4], 4) + self.assertEqual(cache[5], 5) + + def test_ttl_expire(self): + cache = TTLCache(maxsize=3, ttl=2, timer=Timer()) with cache.timer as time: self.assertEqual(time, cache.timer()) self.assertEqual(2, cache.ttl) @@ -155,7 +159,7 @@ class TTLCacheTest(unittest.TestCase, CacheTestMixin): self.assertNotIn(2, cache) self.assertNotIn(3, cache) - def test_atomic(self): + def test_ttl_atomic(self): cache = TTLCache(maxsize=1, ttl=1, timer=Timer(auto=True)) cache[1] = 1 self.assertEqual(1, cache[1]) @@ -169,22 +173,8 @@ class TTLCacheTest(unittest.TestCase, CacheTestMixin): cache.clear() self.assertEqual(0, len(cache)) - def test_missing(self): - class DefaultTTLCache(TTLCache): - def __missing__(self, key): - self[key] = key - return key - - cache = DefaultTTLCache(maxsize=1, ttl=1, timer=Timer()) - self.assertEqual(1, cache[1]) - self.assertIn(1, cache) - self.assertNotIn(2, cache) - self.assertEqual(2, cache[2]) - self.assertNotIn(1, cache) - self.assertIn(2, cache) - - def test_tuple_key(self): - cache = self.cache(maxsize=1, ttl=0) + def test_ttl_tuple_key(self): + cache = TTLCache(maxsize=1, ttl=0, timer=Timer()) self.assertEqual(0, cache.ttl) cache[(1, 2, 3)] = 42 |