def test_can_reopen(self): for storage_class in self.DISK_STORAGES: with self.subTest(scenario=storage_class.__name__): path = mktemp(dir=UNITTEST_TMP_DIR) cache = LRUCache(storage=storage_class(path=path)) cache['abc'] = {'my_data': 'a'} cache.close() cache = LRUCache(storage=storage_class(path=path)) self.assertEqual(cache['abc'], {'my_data': 'a'}) cache.close()
def test_reopen_preserves_lru(self): for storage_class in self.DISK_STORAGES: with self.subTest(scenario=storage_class.__name__): path = mktemp(dir=UNITTEST_TMP_DIR) cache = LRUCache(storage=storage_class(path=path), max_size=2, sizeof=lambda i: 1) cache['abc'] = {'my_data': 'a'} cache['def'] = {'my_data': 'b'} cache.close() cache = LRUCache(storage=storage_class(path=path), max_size=2, sizeof=lambda i: 1) cache['ghi'] = {'my_data': 'c'} with self.assertRaises(ItemNotCached): cache['abc'] self.assertEqual(cache.total_size_stored, 2) self.assertEqual(cache['def'], {'my_data': 'b'}) self.assertEqual(cache['ghi'], {'my_data': 'c'}) cache.close()