diff --git a/tests/test_wiki_docs.py b/tests/test_wiki_docs.py index 5fca242..e4685cf 100644 --- a/tests/test_wiki_docs.py +++ b/tests/test_wiki_docs.py @@ -6,7 +6,7 @@ import sys import tempfile import unittest from pathlib import Path -from unittest.mock import patch +from unittest.mock import Mock, patch ROOT = Path(__file__).resolve().parents[1] @@ -22,6 +22,7 @@ from wiki_docs import ( # noqa: E402 load_config, parse_mirror, render_mirror, + sync_all, validate_mappings, ) @@ -99,6 +100,20 @@ class MirrorTests(unittest.TestCase): ) 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): def test_safe_title_handles_windows_characters(self) -> None: