def test__get_cache_items_to_delete(tmpdir): memory, expected_hash_cachedirs, _ = _setup_toy_cache(tmpdir) cachedir = memory.cachedir cache_items = _get_cache_items(cachedir) # bytes_limit set to keep only one cache item (each hash cache # folder is about 1000 bytes + metadata) cache_items_to_delete = _get_cache_items_to_delete(cachedir, '2K') nb_hashes = len(expected_hash_cachedirs) assert set.issubset(set(cache_items_to_delete), set(cache_items)) assert len(cache_items_to_delete) == nb_hashes - 1 # Sanity check bytes_limit=2048 is the same as bytes_limit='2K' cache_items_to_delete_2048b = _get_cache_items_to_delete(cachedir, 2048) assert sorted(cache_items_to_delete) == sorted(cache_items_to_delete_2048b) # bytes_limit greater than the size of the cache cache_items_to_delete_empty = _get_cache_items_to_delete(cachedir, '1M') assert cache_items_to_delete_empty == [] # All the cache items need to be deleted bytes_limit_too_small = 500 cache_items_to_delete_500b = _get_cache_items_to_delete( cachedir, bytes_limit_too_small) assert set(cache_items_to_delete_500b), set(cache_items) # Test LRU property: surviving cache items should all have a more # recent last_access that the ones that have been deleted cache_items_to_delete_6000b = _get_cache_items_to_delete(cachedir, 6000) surviving_cache_items = set(cache_items).difference( cache_items_to_delete_6000b) assert (max(ci.last_access for ci in cache_items_to_delete_6000b) <= min( ci.last_access for ci in surviving_cache_items))
def test__get_cache_items_to_delete(tmpdir): mem, expected_hash_cachedirs, _ = _setup_temporary_cache_folder(tmpdir) cachedir = mem.cachedir cache_items = _get_cache_items(cachedir) # bytes_limit set to keep only one cache item (each hash cache # folder is about 1000 bytes + metadata) cache_items_to_delete = _get_cache_items_to_delete(cachedir, '2K') nb_hashes = len(expected_hash_cachedirs) assert set.issubset(set(cache_items_to_delete), set(cache_items)) assert len(cache_items_to_delete) == nb_hashes - 1 # Sanity check bytes_limit=2048 is the same as bytes_limit='2K' cache_items_to_delete_2048b = _get_cache_items_to_delete(cachedir, 2048) assert sorted(cache_items_to_delete) == sorted(cache_items_to_delete_2048b) # bytes_limit greater than the size of the cache cache_items_to_delete_empty = _get_cache_items_to_delete(cachedir, '1M') assert cache_items_to_delete_empty == [] # All the cache items need to be deleted bytes_limit_too_small = 500 cache_items_to_delete_500b = _get_cache_items_to_delete( cachedir, bytes_limit_too_small) assert set(cache_items_to_delete_500b), set(cache_items) # Test LRU property: surviving cache items should all have a more # recent last_access that the ones that have been deleted cache_items_to_delete_6000b = _get_cache_items_to_delete(cachedir, 6000) surviving_cache_items = set(cache_items).difference( cache_items_to_delete_6000b) assert (max(ci.last_access for ci in cache_items_to_delete_6000b) <= min(ci.last_access for ci in surviving_cache_items))
def test__get_cache_items_to_delete(): mem, expected_hash_cachedirs, _ = _setup_temporary_cache_folder() cachedir = mem.cachedir cache_items = _get_cache_items(cachedir) # bytes_limit set to keep only one cache item (each hash cache # folder is about 1000 bytes + metadata) cache_items_to_delete = _get_cache_items_to_delete(cachedir, '2K') nb_hashes = len(expected_hash_cachedirs) nose.tools.assert_true( set.issubset(set(cache_items_to_delete), set(cache_items))) nose.tools.assert_equal(len(cache_items_to_delete), nb_hashes - 1) # Sanity check bytes_limit=2048 is the same as bytes_limit='2K' cache_items_to_delete_2048b = _get_cache_items_to_delete(cachedir, 2048) nose.tools.assert_equal(sorted(cache_items_to_delete), sorted(cache_items_to_delete_2048b)) # bytes_limit greater than the size of the cache cache_items_to_delete_empty = _get_cache_items_to_delete(cachedir, '1M') nose.tools.assert_equal(cache_items_to_delete_empty, []) # All the cache items need to be deleted bytes_limit_too_small = 500 cache_items_to_delete_500b = _get_cache_items_to_delete( cachedir, bytes_limit_too_small) nose.tools.assert_true(set(cache_items_to_delete_500b), set(cache_items)) # Test LRU property: surviving cache items should all have a more # recent last_access that the ones that have been deleted cache_items_to_delete_6000b = _get_cache_items_to_delete(cachedir, 6000) surviving_cache_items = set(cache_items).difference( cache_items_to_delete_6000b) nose.tools.assert_true( max(ci.last_access for ci in cache_items_to_delete_6000b) <= min( ci.last_access for ci in surviving_cache_items))