Fix dynamic memoir image limits

This commit is contained in:
Kevin
2026-03-11 14:07:02 +08:00
parent 822aefe54b
commit f7d95c4c9a
5 changed files with 214 additions and 17 deletions

View File

@@ -13,6 +13,8 @@ class MemoirImageSettingsTest(unittest.TestCase):
os.environ,
{
"MEMOIR_IMAGE_MAX_PER_CHAPTER": "not-an-int",
"MEMOIR_IMAGE_CHARS_PER_EXTRA": "bad-extra",
"MEMOIR_IMAGE_MAX_CAP": "bad-cap",
"MEMOIR_IMAGE_POLL_INTERVAL": "bad",
"MEMOIR_IMAGE_MAX_ATTEMPTS": "oops",
},
@@ -22,6 +24,8 @@ class MemoirImageSettingsTest(unittest.TestCase):
settings = MemoirImageSettings.from_env()
self.assertEqual(settings.max_per_chapter, 2)
self.assertEqual(settings.chars_per_extra_image, 1500)
self.assertEqual(settings.max_images_cap, 8)
self.assertEqual(settings.poll_interval_seconds, 3)
self.assertEqual(settings.max_attempts, 60)
@@ -31,3 +35,8 @@ class MemoirImageSettingsTest(unittest.TestCase):
settings = MemoirImageSettings.from_env()
self.assertEqual(settings.liblib_template_uuid, DEFAULT_LIBLIB_TEMPLATE_UUID)
def test_effective_max_images_never_drops_below_base_max_per_chapter(self):
settings = MemoirImageSettings(enabled=True, max_per_chapter=2, max_images_cap=1)
self.assertEqual(settings.effective_max_images(0), 2)