Honor configurable cache size with LRU eviction

This commit is contained in:
SpiderFish
2026-08-26 10:06:03 +10:00
parent 093315b382
commit 0a07afef85
3 changed files with 64 additions and 6 deletions
+20
View File
@@ -64,6 +64,26 @@ class CoreTests(unittest.TestCase):
source.write_bytes(b"changed")
self.assertFalse(manager.cache_valid(relative))
def test_smaller_cache_limit_evicts_oldest_content(self):
m = self.module
manager = m.Manager()
relative = "movies/Resize/Resize.mkv"
source = self.root / "source" / relative
source.parent.mkdir(parents=True, exist_ok=True)
source.write_bytes(b"original")
output, manifest = manager.cache_paths(relative)
output.write_bytes(b"cached rendition")
manifest.write_text(json.dumps({"relative": relative, "source_fingerprint": m.fingerprint(source)}))
manager.ensure_link(relative, m.cache_target(relative))
old_limit = m.CACHE_MAX_BYTES
try:
m.CACHE_MAX_BYTES = 1
manager.enforce_cache_limit()
finally:
m.CACHE_MAX_BYTES = old_limit
self.assertFalse(output.exists())
self.assertEqual(os.readlink(self.root / "view" / relative), m.source_target(relative))
if __name__ == "__main__":
unittest.main()