aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Kemmer <tkemmer@computer.org>2014-09-22 20:05:53 +0200
committerThomas Kemmer <tkemmer@computer.org>2014-09-23 18:13:35 +0200
commit5ae3b9d9dfe2fd7aa64670f4bd5534ab9ca96a79 (patch)
treed831f6966b388684f0a7198e1f1d6a2cc13a2eef /tests
parente255ae776117772c35dfa54db3acd2410658ba8b (diff)
downloadcachetools-5ae3b9d9dfe2fd7aa64670f4bd5534ab9ca96a79.tar.gz
Resolve #9: Add @ttl_cache function decorator.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_cachedmethod.py (renamed from tests/test_method.py)2
-rw-r--r--tests/test_ttlcache.py35
2 files changed, 35 insertions, 2 deletions
diff --git a/tests/test_method.py b/tests/test_cachedmethod.py
index 40ab5ee..ee051e2 100644
--- a/tests/test_method.py
+++ b/tests/test_cachedmethod.py
@@ -23,7 +23,7 @@ class Cached(object):
return count
-class MethodTest(unittest.TestCase):
+class CachedMethodTest(unittest.TestCase):
def test_decorator(self):
cached = Cached()
diff --git a/tests/test_ttlcache.py b/tests/test_ttlcache.py
index 6bf2d5e..938d0f2 100644
--- a/tests/test_ttlcache.py
+++ b/tests/test_ttlcache.py
@@ -1,7 +1,17 @@
import unittest
from . import LRUCacheTestMixin
-from cachetools import TTLCache
+from cachetools import TTLCache, ttl_cache
+
+
+@ttl_cache(maxsize=2)
+def cached(n):
+ return n
+
+
+@ttl_cache(maxsize=2, typed=True)
+def cached_typed(n):
+ return n
class TTLCacheTest(unittest.TestCase, LRUCacheTestMixin):
@@ -79,3 +89,26 @@ class TTLCacheTest(unittest.TestCase, LRUCacheTestMixin):
self.assertNotIn(1, cache)
self.assertNotIn(2, cache)
self.assertNotIn(3, cache)
+
+ def test_decorator(self):
+ self.assertEqual(cached.cache_info(), (0, 0, 2, 0))
+ self.assertEqual(cached(1), 1)
+ self.assertEqual(cached.cache_info(), (0, 1, 2, 1))
+ self.assertEqual(cached(1), 1)
+ self.assertEqual(cached.cache_info(), (1, 1, 2, 1))
+ self.assertEqual(cached(1.0), 1.0)
+ self.assertEqual(cached.cache_info(), (2, 1, 2, 1))
+
+ cached.cache_clear()
+ self.assertEqual(cached(1), 1)
+ self.assertEqual(cached.cache_info(), (2, 2, 2, 1))
+
+ def test_typed_decorator(self):
+ self.assertEqual(cached_typed(1), 1)
+ self.assertEqual(cached_typed.cache_info(), (0, 1, 2, 1))
+ self.assertEqual(cached_typed(1), 1)
+ self.assertEqual(cached_typed.cache_info(), (1, 1, 2, 1))
+ self.assertEqual(cached_typed(1.0), 1.0)
+ self.assertEqual(cached_typed.cache_info(), (1, 2, 2, 2))
+ self.assertEqual(cached_typed(1.0), 1.0)
+ self.assertEqual(cached_typed.cache_info(), (2, 2, 2, 2))