test: 覆盖 Wiki 镜像脏文件保护 (#1)

This commit is contained in:
QiuSW
2026-08-07 23:58:34 +08:00
parent f1a7b09c82
commit 8c52ea27ad
+16 -1
View File
@@ -6,7 +6,7 @@ import sys
import tempfile import tempfile
import unittest import unittest
from pathlib import Path from pathlib import Path
from unittest.mock import patch from unittest.mock import Mock, patch
ROOT = Path(__file__).resolve().parents[1] ROOT = Path(__file__).resolve().parents[1]
@@ -22,6 +22,7 @@ from wiki_docs import ( # noqa: E402
load_config, load_config,
parse_mirror, parse_mirror,
render_mirror, render_mirror,
sync_all,
validate_mappings, validate_mappings,
) )
@@ -99,6 +100,20 @@ class MirrorTests(unittest.TestCase):
) )
self.assertEqual(dirty_mirror_paths(config), [" M docs/README.md"]) self.assertEqual(dirty_mirror_paths(config), [" M docs/README.md"])
@patch("wiki_docs.dirty_mirror_paths", return_value=[" M docs/README.md"])
def test_sync_stops_before_reading_wiki_when_mirror_is_dirty(self, _dirty) -> None:
config = Config(
path=Path("wiki-docs.json"),
gitea_url="http://gitea.example",
owner="o",
repository="r",
mappings=(Mapping("Home", "docs/README.md"),),
)
client = Mock()
with self.assertRaisesRegex(WikiDocsError, "未提交改动"):
sync_all(config, client)
client.get_page.assert_not_called()
class ArchiveTests(unittest.TestCase): class ArchiveTests(unittest.TestCase):
def test_safe_title_handles_windows_characters(self) -> None: def test_safe_title_handles_windows_characters(self) -> None: