diff options
author | Thomas Kemmer <tkemmer@computer.org> | 2014-09-22 20:05:53 +0200 |
---|---|---|
committer | Thomas Kemmer <tkemmer@computer.org> | 2014-09-23 18:13:35 +0200 |
commit | 5ae3b9d9dfe2fd7aa64670f4bd5534ab9ca96a79 (patch) | |
tree | d831f6966b388684f0a7198e1f1d6a2cc13a2eef /tests | |
parent | e255ae776117772c35dfa54db3acd2410658ba8b (diff) | |
download | cachetools-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.py | 35 |
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)) |