aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cachetools/ttlcache.py2
-rw-r--r--tests/test_ttlcache.py11
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)