1import unittest 2 3from cachetools import FIFOCache 4 5from . import CacheTestMixin 6 7 8class LRUCacheTest(unittest.TestCase, CacheTestMixin): 9 10 Cache = FIFOCache 11 12 def test_fifo(self): 13 cache = FIFOCache(maxsize=2) 14 15 cache[1] = 1 16 cache[2] = 2 17 cache[3] = 3 18 19 self.assertEqual(len(cache), 2) 20 self.assertEqual(cache[2], 2) 21 self.assertEqual(cache[3], 3) 22 self.assertNotIn(1, cache) 23 24 cache[2] 25 cache[4] = 4 26 self.assertEqual(len(cache), 2) 27 self.assertEqual(cache[3], 3) 28 self.assertEqual(cache[4], 4) 29 self.assertNotIn(2, cache) 30 31 cache[5] = 5 32 self.assertEqual(len(cache), 2) 33 self.assertEqual(cache[4], 4) 34 self.assertEqual(cache[5], 5) 35 self.assertNotIn(3, cache) 36 37 def test_fifo_getsizeof(self): 38 cache = FIFOCache(maxsize=3, getsizeof=lambda x: x) 39 40 cache[1] = 1 41 cache[2] = 2 42 43 self.assertEqual(len(cache), 2) 44 self.assertEqual(cache[1], 1) 45 self.assertEqual(cache[2], 2) 46 47 cache[3] = 3 48 49 self.assertEqual(len(cache), 1) 50 self.assertEqual(cache[3], 3) 51 self.assertNotIn(1, cache) 52 self.assertNotIn(2, cache) 53 54 with self.assertRaises(ValueError): 55 cache[4] = 4 56 self.assertEqual(len(cache), 1) 57 self.assertEqual(cache[3], 3) 58