import os import unittest import unittest.mock from app.tasks.memoir_tasks import initialize_chapter_images class MemoirImageBootstrapTest(unittest.TestCase): def test_initialize_chapter_images_keeps_only_completed_assets_when_disabled(self): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op,直接返回 []""" chapter = type( "ChapterStub", (), { "id": "chapter-1", "title": "童年的夏天", "category": "childhood", }, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "false"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_sets_pending_assets_when_enabled(self): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), { "id": "chapter-1", "title": "童年的夏天", "category": "childhood", }, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_preserves_completed_assets_and_adds_only_new_placeholders( self, ): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), {"id": "chapter-1", "title": "童年的夏天", "category": "childhood"}, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_accepts_double_brace_placeholders(self): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), {"id": "chapter-1", "title": "童年的夏天", "category": "childhood"}, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_normalizes_invalid_existing_asset_status(self): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), {"id": "chapter-1", "title": "童年的夏天", "category": "childhood"}, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_preserves_existing_completed_assets_beyond_effective_max( self, ): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), {"id": "chapter-1", "title": "童年的夏天", "category": "childhood"}, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true", "MEMOIR_IMAGE_MAX_PER_CHAPTER": "2"}, clear=False, ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_increases_limit_for_long_content(self): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), {"id": "chapter-1", "title": "童年的夏天", "category": "childhood"}, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, []) def test_initialize_chapter_images_caps_dynamic_limit_at_max_images_cap(self): """图片初始化已迁移到 _save_narrative_to_sections;此处为兼容 no-op""" chapter = type( "ChapterStub", (), {"id": "chapter-1", "title": "童年的夏天", "category": "childhood"}, )() with unittest.mock.patch.dict( os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False ): assets = initialize_chapter_images(chapter) self.assertEqual(assets, [])