Files
novelmaster/noma/scripts/data_modules/tests/test_chapter_paths.py
T
2026-06-23 20:29:02 +08:00

52 lines
1.5 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import sys
from pathlib import Path
def _load_module():
scripts_dir = Path(__file__).resolve().parents[2]
if str(scripts_dir) not in sys.path:
sys.path.insert(0, str(scripts_dir))
import chapter_paths
return chapter_paths
def test_default_chapter_draft_path_uses_outline_heading_title(tmp_path):
module = _load_module()
outline_dir = tmp_path / "大纲"
outline_dir.mkdir(parents=True, exist_ok=True)
(outline_dir / "第1卷-详细大纲.md").write_text("### 第1章:测试标题\n测试大纲", encoding="utf-8")
draft_path = module.default_chapter_draft_path(tmp_path, 1)
assert draft_path.name == "第0001章-测试标题.md"
def test_default_chapter_draft_path_falls_back_to_split_outline_filename(tmp_path):
module = _load_module()
outline_dir = tmp_path / "大纲"
outline_dir.mkdir(parents=True, exist_ok=True)
(outline_dir / "第0002章-标题 文件.md").write_text("无章节标题 heading", encoding="utf-8")
draft_path = module.default_chapter_draft_path(tmp_path, 2)
assert draft_path.name == "第0002章-标题_文件.md"
def test_find_chapter_file_supports_titled_flat_filename(tmp_path):
module = _load_module()
chapter_path = tmp_path / "正文" / "第0003章-山雨欲来.md"
chapter_path.parent.mkdir(parents=True, exist_ok=True)
chapter_path.write_text("正文", encoding="utf-8")
found = module.find_chapter_file(tmp_path, 3)
assert found == chapter_path