aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Kemmer <tkemmer@computer.org>2015-08-28 16:30:38 +0200
committerThomas Kemmer <tkemmer@computer.org>2015-08-28 20:32:02 +0200
commitb6bc3508609fcdaab3cae50648a35ea44f7b6112 (patch)
tree26a0791095133bccbcb3f4cb52661a37e5dcab2b /tests
parent00f1aef41d96b32d0bac1d8afcfd69f030c046c0 (diff)
downloadcachetools-b6bc3508609fcdaab3cae50648a35ea44f7b6112.tar.gz
Code/interface cleanup and documentation.
Diffstat (limited to 'tests')
-rw-r--r--tests/__init__.py6
-rw-r--r--tests/test_method.py41
2 files changed, 41 insertions, 6 deletions
diff --git a/tests/__init__.py b/tests/__init__.py
index 011a19e..9a17c1c 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -244,7 +244,7 @@ class DecoratorTestMixin(object):
def test_decorator(self):
cache = self.cache(2)
- wrapper = cachetools.cache(cache)(self.func)
+ wrapper = cachetools.cached(cache)(self.func)
self.assertEqual(len(cache), 0)
self.assertEqual(wrapper.__wrapped__, self.func)
@@ -278,7 +278,7 @@ class DecoratorTestMixin(object):
key += tuple(type(v) for v in args)
key += tuple(type(v) for _, v in sorted(kwargs.items()))
return key
- wrapper = cachetools.cache(cache, key=typedkey)(self.func)
+ wrapper = cachetools.cached(cache, key=typedkey)(self.func)
self.assertEqual(len(cache), 0)
self.assertEqual(wrapper.__wrapped__, self.func)
@@ -319,7 +319,7 @@ class DecoratorTestMixin(object):
pass
cache = self.cache(2)
- wrapper = cachetools.cache(cache, lock=Lock())(self.func)
+ wrapper = cachetools.cached(cache, lock=Lock())(self.func)
self.assertEqual(len(cache), 0)
self.assertEqual(wrapper.__wrapped__, self.func)
diff --git a/tests/test_method.py b/tests/test_method.py
index 82337e0..a78ac4b 100644
--- a/tests/test_method.py
+++ b/tests/test_method.py
@@ -6,8 +6,6 @@ from cachetools import LRUCache, cachedmethod
class Cached(object):
- count = 0
-
def __init__(self, cache, count=0):
self.cache = cache
self.count = count
@@ -25,6 +23,23 @@ class Cached(object):
return count
+class Locked(object):
+
+ def __init__(self, cache):
+ self.cache = cache
+ self.count = 0
+
+ @cachedmethod(operator.attrgetter('cache'), lock=lambda self: self)
+ def get(self, value):
+ return self.count
+
+ def __enter__(self):
+ self.count += 1
+
+ def __exit__(self, *exc):
+ pass
+
+
class CachedMethodTest(unittest.TestCase):
def test_dict(self):
@@ -107,7 +122,7 @@ class CachedMethodTest(unittest.TestCase):
def __add__(self, other):
return Int(fractions.Fraction.__add__(self, other))
- cached = Cached(weakref.WeakValueDictionary(), Int(0))
+ cached = Cached(weakref.WeakValueDictionary(), count=Int(0))
self.assertEqual(cached.cache, cached.get.cache(cached))
self.assertEqual(cached.get(0), 0)
@@ -125,3 +140,23 @@ class CachedMethodTest(unittest.TestCase):
cached.cache.clear()
self.assertEqual(cached.get(1), 5)
+
+ def test_locked_dict(self):
+ cached = Locked({})
+ self.assertEqual(cached.cache, cached.get.cache(cached))
+
+ self.assertEqual(cached.get(0), 1)
+ self.assertEqual(cached.get(1), 3)
+ self.assertEqual(cached.get(1), 3)
+ self.assertEqual(cached.get(1.0), 3)
+ self.assertEqual(cached.get(2.0), 7)
+
+ def test_nocache(self):
+ cached = Locked(None)
+ self.assertEqual(None, cached.get.cache(cached))
+
+ self.assertEqual(cached.get(0), 0)
+ self.assertEqual(cached.get(1), 0)
+ self.assertEqual(cached.get(1), 0)
+ self.assertEqual(cached.get(1.0), 0)
+ self.assertEqual(cached.get(1.0), 0)