aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorThomas Kemmer <tkemmer@computer.org>2014-05-06 18:14:33 +0200
committerThomas Kemmer <tkemmer@computer.org>2014-05-06 18:14:33 +0200
commit5543675c8e5e7771d48fe81f880ad690c44900f8 (patch)
tree7fb19f7de062df7c6da981b3d57b19bb2193212f /tests
parent573b318c65abe41f03cf2269356182e19f11caa1 (diff)
downloadcachetools-5543675c8e5e7771d48fe81f880ad690c44900f8.tar.gz
Add size, getsizeof cache members.
Diffstat (limited to 'tests')
-rw-r--r--tests/test_cache.py36
-rw-r--r--tests/test_lfucache.py22
-rw-r--r--tests/test_lrucache.py23
-rw-r--r--tests/test_rrcache.py22
4 files changed, 85 insertions, 18 deletions
diff --git a/tests/test_cache.py b/tests/test_cache.py
index 5c32f2b..e2a58e6 100644
--- a/tests/test_cache.py
+++ b/tests/test_cache.py
@@ -4,38 +4,38 @@ import cachetools
import collections
-@cachetools.cache
-class DictCache(dict):
- pass
-
-
-@cachetools.cache
-class OrderedDictCache(collections.OrderedDict):
- pass
-
-
class CacheTest(unittest.TestCase):
def test_dict_cache(self):
- cache = DictCache(maxsize=2)
+ cache = cachetools._Cache({'a': 1, 'b': 2}, maxsize=2)
+
+ self.assertEqual(len(cache), 2)
+ self.assertEqual(cache['a'], 1)
+ self.assertEqual(cache['b'], 2)
- cache['a'] = 1
- cache['b'] = 2
cache['c'] = 3
self.assertEqual(len(cache), 2)
- self.assertTrue('a' in cache or ('b' in cache and 'c' in cache))
- self.assertTrue('b' in cache or ('a' in cache and 'c' in cache))
- self.assertTrue('c' in cache or ('a' in cache and 'b' in cache))
+ self.assertTrue('a' in cache or 'b' in cache)
+ self.assertEqual(cache['c'], 3)
+
+ cache.maxsize = 1
+
+ self.assertEqual(len(cache), 1)
+ self.assertTrue('a' in cache or 'b' in cache or 'c' in cache)
def test_ordered_dict_cache(self):
- cache = OrderedDictCache(maxsize=2)
+ cache = cachetools._Cache(collections.OrderedDict(), maxsize=2)
cache['a'] = 1
cache['b'] = 2
cache['c'] = 3
self.assertEqual(len(cache), 2)
- self.assertNotIn('a', cache)
self.assertEqual(cache['b'], 2)
self.assertEqual(cache['c'], 3)
+
+ cache.maxsize = 1
+
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
diff --git a/tests/test_lfucache.py b/tests/test_lfucache.py
index d414e20..cfdf0ec 100644
--- a/tests/test_lfucache.py
+++ b/tests/test_lfucache.py
@@ -33,6 +33,28 @@ class LFUCacheTest(unittest.TestCase):
self.assertEqual(cache['d'], 4)
self.assertEqual(cache['a'], 1)
+ def test_getsizeof(self):
+ cache = LFUCache(maxsize=3, getsizeof=lambda x: x)
+
+ cache['a'] = 1
+ cache['b'] = 2
+
+ self.assertEqual(len(cache), 2)
+ self.assertEqual(cache['a'], 1)
+ self.assertEqual(cache['b'], 2)
+
+ cache['c'] = 3
+
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
+ self.assertNotIn('a', cache)
+ self.assertNotIn('b', cache)
+
+ with self.assertRaises(ValueError):
+ cache['d'] = 4
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
+
def test_decorator(self):
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, 2, 1))
diff --git a/tests/test_lrucache.py b/tests/test_lrucache.py
index a4ceb6e..21cc798 100644
--- a/tests/test_lrucache.py
+++ b/tests/test_lrucache.py
@@ -40,6 +40,29 @@ class LRUCacheTest(unittest.TestCase):
self.assertEqual(cache['e'], 5)
self.assertNotIn('b', cache)
+ def test_getsizeof(self):
+ cache = LRUCache(maxsize=3, getsizeof=lambda x: x)
+
+ cache['a'] = 1
+ cache['b'] = 2
+
+ self.assertEqual(len(cache), 2)
+ self.assertEqual(cache['a'], 1)
+ self.assertEqual(cache['b'], 2)
+
+ cache['c'] = 3
+
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
+ self.assertNotIn('a', cache)
+ self.assertNotIn('b', cache)
+
+ with self.assertRaises(ValueError):
+ cache['d'] = 4
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
+
+
def test_decorator(self):
self.assertEqual(cached.cache_info(), (0, 0, 2, 0))
self.assertEqual(cached(1), 1)
diff --git a/tests/test_rrcache.py b/tests/test_rrcache.py
index f8eb534..088eedf 100644
--- a/tests/test_rrcache.py
+++ b/tests/test_rrcache.py
@@ -27,6 +27,28 @@ class RRCacheTest(unittest.TestCase):
self.assertTrue('b' in cache or ('a' in cache and 'c' in cache))
self.assertTrue('c' in cache or ('a' in cache and 'b' in cache))
+ def test_getsizeof(self):
+ cache = RRCache(maxsize=3, getsizeof=lambda x: x)
+
+ cache['a'] = 1
+ cache['b'] = 2
+
+ self.assertEqual(len(cache), 2)
+ self.assertEqual(cache['a'], 1)
+ self.assertEqual(cache['b'], 2)
+
+ cache['c'] = 3
+
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
+ self.assertNotIn('a', cache)
+ self.assertNotIn('b', cache)
+
+ with self.assertRaises(ValueError):
+ cache['d'] = 4
+ self.assertEqual(len(cache), 1)
+ self.assertEqual(cache['c'], 3)
+
def test_decorator(self):
self.assertEqual(cached(1), 1)
self.assertEqual(cached.cache_info(), (0, 1, 2, 1))