diff options
Diffstat (limited to 'repoze/lru/tests.py')
-rw-r--r-- | repoze/lru/tests.py | 53 |
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 |