summaryrefslogtreecommitdiff
path: root/repoze/lru/tests.py
diff options
context:
space:
mode:
Diffstat (limited to 'repoze/lru/tests.py')
-rw-r--r--repoze/lru/tests.py53
1 files changed, 53 insertions, 0 deletions
diff --git a/repoze/lru/tests.py b/repoze/lru/tests.py
index 1fe9c87..5cdb739 100644
--- a/repoze/lru/tests.py
+++ b/repoze/lru/tests.py
@@ -8,12 +8,65 @@ except NameError: # pragma: NO COVER (Python3)
pass
+class UnboundedCacheTests(unittest.TestCase):
+
+ def _getTargetClass(self):
+ from repoze.lru import UnboundedCache
+ return UnboundedCache
+
+ def _makeOne(self):
+ return self._getTargetClass()()
+
+ def test_ctor(self):
+ cache = self._makeOne()
+ self.assertEqual(cache._data, {})
+
+ def test_get_miss_no_default(self):
+ cache = self._makeOne()
+ self.assertIsNone(cache.get('nonesuch'))
+
+ def test_get_miss_explicit_default(self):
+ cache = self._makeOne()
+ default = object()
+ self.assertIs(cache.get('nonesuch', default), default)
+
+ def test_get_hit(self):
+ cache = self._makeOne()
+ extant = cache._data['extant'] = object()
+ self.assertIs(cache.get('extant'), extant)
+
+ def test_clear(self):
+ cache = self._makeOne()
+ extant = cache._data['extant'] = object()
+ cache.clear()
+ self.assertIsNone(cache.get('extant'))
+
+ def test_invalidate_miss(self):
+ cache = self._makeOne()
+ cache.invalidate('nonesuch') # does not raise
+
+ def test_invalidate_hit(self):
+ cache = self._makeOne()
+ extant = cache._data['extant'] = object()
+ cache.invalidate('extant')
+ self.assertIsNone(cache.get('extant'))
+
+ def test_put(self):
+ cache = self._makeOne()
+ extant = object()
+ cache.put('extant', extant)
+ self.assertIs(cache._data['extant'], extant)
+
+
class LRUCacheTests(unittest.TestCase):
def _getTargetClass(self):
from repoze.lru import LRUCache
return LRUCache
+ def _makeOne(self, size):
+ return self._getTargetClass()(size)
+
def check_cache_is_consistent(self, cache):
#Return if cache is consistent, else raise fail test case.
# cache.hand/maxpos/size