diff options
-rw-r--r-- | cachetools/ttlcache.py | 2 | ||||
-rw-r--r-- | tests/test_ttlcache.py | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/cachetools/ttlcache.py b/cachetools/ttlcache.py index b0dbf38..c910d12 100644 --- a/cachetools/ttlcache.py +++ b/cachetools/ttlcache.py @@ -42,7 +42,7 @@ class TTLCache(LRUCache): def __getitem__(self, key, cache_getitem=LRUCache.__getitem__): value, link = cache_getitem(self, key) if link.data[1] < self.__timer(): - raise KeyError('%r has expired' % key) + raise KeyError(key) return value def __setitem__(self, key, value, diff --git a/tests/test_ttlcache.py b/tests/test_ttlcache.py index 938d0f2..c1145e5 100644 --- a/tests/test_ttlcache.py +++ b/tests/test_ttlcache.py @@ -90,6 +90,17 @@ class TTLCacheTest(unittest.TestCase, LRUCacheTestMixin): self.assertNotIn(2, cache) self.assertNotIn(3, cache) + def test_ttl_tuple_key(self): + cache = self.make_ttl_cache(maxsize=1, ttl=0) + + cache[(1, 2, 3)] = 42 + self.assertEqual(42, cache[(1, 2, 3)]) + cache.timer.inc() + with self.assertRaises(KeyError): + cache[(1, 2, 3)] + cache.expire() + self.assertNotIn((1, 2, 3), cache) + def test_decorator(self): self.assertEqual(cached.cache_info(), (0, 0, 2, 0)) self.assertEqual(cached(1), 1) |