test: 覆盖核心文档映射错误 (#2)
This commit is contained in:
@@ -165,6 +165,16 @@ def check_task_template(errors: list[str], root: Path = ROOT) -> None:
|
|||||||
errors.append(f"单元任务模板缺少:{section}")
|
errors.append(f"单元任务模板缺少:{section}")
|
||||||
|
|
||||||
|
|
||||||
|
def core_mapping_errors(configured_mappings: dict[str, str]) -> list[str]:
|
||||||
|
errors: list[str] = []
|
||||||
|
for page, expected_path in CORE_PAGE_PATHS.items():
|
||||||
|
if configured_mappings.get(page) != expected_path:
|
||||||
|
errors.append(
|
||||||
|
f"核心 Wiki 页面映射缺失或路径错误:{page} -> {expected_path}"
|
||||||
|
)
|
||||||
|
return errors
|
||||||
|
|
||||||
|
|
||||||
def check_wiki_mirrors(errors: list[str]) -> None:
|
def check_wiki_mirrors(errors: list[str]) -> None:
|
||||||
"""检查每份本地文档都有显式映射和可追踪的镜像头。"""
|
"""检查每份本地文档都有显式映射和可追踪的镜像头。"""
|
||||||
|
|
||||||
@@ -175,11 +185,7 @@ def check_wiki_mirrors(errors: list[str]) -> None:
|
|||||||
return
|
return
|
||||||
|
|
||||||
configured_mappings = {mapping.page: mapping.path for mapping in config.mappings}
|
configured_mappings = {mapping.page: mapping.path for mapping in config.mappings}
|
||||||
for page, expected_path in CORE_PAGE_PATHS.items():
|
errors.extend(core_mapping_errors(configured_mappings))
|
||||||
if configured_mappings.get(page) != expected_path:
|
|
||||||
errors.append(
|
|
||||||
f"核心 Wiki 页面映射缺失或路径错误:{page} -> {expected_path}"
|
|
||||||
)
|
|
||||||
|
|
||||||
mapped_paths = {mapping.path for mapping in config.mappings}
|
mapped_paths = {mapping.path for mapping in config.mappings}
|
||||||
actual_paths = {
|
actual_paths = {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ from check_harness import ( # noqa: E402
|
|||||||
REQUIRED_FILES,
|
REQUIRED_FILES,
|
||||||
check_core_documents,
|
check_core_documents,
|
||||||
check_task_template,
|
check_task_template,
|
||||||
|
core_mapping_errors,
|
||||||
missing_sections,
|
missing_sections,
|
||||||
)
|
)
|
||||||
from wiki_docs import load_config # noqa: E402
|
from wiki_docs import load_config # noqa: E402
|
||||||
@@ -39,6 +40,13 @@ class CoreDocumentTests(unittest.TestCase):
|
|||||||
for page, path in CORE_PAGE_PATHS.items():
|
for page, path in CORE_PAGE_PATHS.items():
|
||||||
self.assertEqual(mappings.get(page), path)
|
self.assertEqual(mappings.get(page), path)
|
||||||
|
|
||||||
|
def test_missing_or_wrong_core_mapping_is_reported(self) -> None:
|
||||||
|
errors = core_mapping_errors({"Home": "docs/wrong.md"})
|
||||||
|
self.assertTrue(any("Home -> docs/README.md" in error for error in errors))
|
||||||
|
self.assertTrue(
|
||||||
|
any("Architecture-and-Code-Map" in error for error in errors)
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TaskTemplateTests(unittest.TestCase):
|
class TaskTemplateTests(unittest.TestCase):
|
||||||
def test_task_template_requires_document_impact(self) -> None:
|
def test_task_template_requires_document_impact(self) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user