diff options
Diffstat (limited to 'tests/test_fifo.py')
-rw-r--r-- | tests/test_fifo.py | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/tests/test_fifo.py b/tests/test_fifo.py new file mode 100644 index 0000000..933af56 --- /dev/null +++ b/tests/test_fifo.py @@ -0,0 +1,57 @@ +import unittest + +from cachetools import FIFOCache + +from . import CacheTestMixin + + +class LRUCacheTest(unittest.TestCase, CacheTestMixin): + + Cache = FIFOCache + + def test_fifo(self): + cache = FIFOCache(maxsize=2) + + cache[1] = 1 + cache[2] = 2 + cache[3] = 3 + + self.assertEqual(len(cache), 2) + self.assertEqual(cache[2], 2) + self.assertEqual(cache[3], 3) + self.assertNotIn(1, cache) + + cache[2] + cache[4] = 4 + self.assertEqual(len(cache), 2) + self.assertEqual(cache[3], 3) + self.assertEqual(cache[4], 4) + self.assertNotIn(2, cache) + + cache[5] = 5 + self.assertEqual(len(cache), 2) + self.assertEqual(cache[4], 4) + self.assertEqual(cache[5], 5) + self.assertNotIn(3, cache) + + def test_fifo_getsizeof(self): + cache = FIFOCache(maxsize=3, getsizeof=lambda x: x) + + cache[1] = 1 + cache[2] = 2 + + self.assertEqual(len(cache), 2) + self.assertEqual(cache[1], 1) + self.assertEqual(cache[2], 2) + + cache[3] = 3 + + self.assertEqual(len(cache), 1) + self.assertEqual(cache[3], 3) + self.assertNotIn(1, cache) + self.assertNotIn(2, cache) + + with self.assertRaises(ValueError): + cache[4] = 4 + self.assertEqual(len(cache), 1) + self.assertEqual(cache[3], 3) |