Files
life-echo/api/tests/test_memoir_image_bootstrap.py

100 lines
4.3 KiB
Python
Raw Normal View History

import os
import unittest
import unittest.mock
from api.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, [])
2026-03-11 14:07:02 +08:00
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"})()
2026-03-11 14:07:02 +08:00
with unittest.mock.patch.dict(
os.environ,
{"MEMOIR_IMAGE_ENABLED": "true", "MEMOIR_IMAGE_MAX_PER_CHAPTER": "2"},
2026-03-11 14:07:02 +08:00
clear=False,
):
assets = initialize_chapter_images(chapter)
self.assertEqual(assets, [])
2026-03-11 14:07:02 +08:00
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"})()
2026-03-11 14:07:02 +08:00
with unittest.mock.patch.dict(os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False):
2026-03-11 14:07:02 +08:00
assets = initialize_chapter_images(chapter)
self.assertEqual(assets, [])
2026-03-11 14:07:02 +08:00
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"})()
2026-03-11 14:07:02 +08:00
with unittest.mock.patch.dict(os.environ, {"MEMOIR_IMAGE_ENABLED": "true"}, clear=False):
2026-03-11 14:07:02 +08:00
assets = initialize_chapter_images(chapter)
self.assertEqual(assets, [])