summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorYuriy Andamasov <yuriy@vyos.io>2026-04-27 04:56:04 +0300
committerYuriy Andamasov <yuriy@vyos.io>2026-05-06 16:18:03 +0300
commit1396d89137d5a6e6702a5696f9ea9fe63b5a8366 (patch)
tree1d54ecbe9e25ffb725f2d1c0c558d75fa61cab26 /tests
parentb73f17d61c79475c2e741f62455bb5e90ad1e287 (diff)
downloadvyos-documentation-1396d89137d5a6e6702a5696f9ea9fe63b5a8366.tar.gz
vyos-documentation-1396d89137d5a6e6702a5696f9ea9fe63b5a8366.zip
feat: add import_myst.py for importing MyST files from myst/* branches
Adds scripts/import_myst.py with import_page, git_show, list_myst_files, list_rst_files, and do_import. Imported files are written as md-{name}.md alongside existing RST files; importing is decoupled from swap activation. Adds tests/test_import_myst.py covering single-page write, identical-skip, warn-on-different-without-force, force-overwrite, and nested-path creation. All 5 tests pass on Python 3.9. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'tests')
-rw-r--r--tests/test_import_myst.py101
1 files changed, 101 insertions, 0 deletions
diff --git a/tests/test_import_myst.py b/tests/test_import_myst.py
new file mode 100644
index 00000000..1d975b45
--- /dev/null
+++ b/tests/test_import_myst.py
@@ -0,0 +1,101 @@
+"""Tests for import_myst.py — run with:
+ cd tests && PYTHONPATH=../scripts python3 -m pytest test_import_myst.py -v
+"""
+import warnings
+from pathlib import Path
+
+import pytest
+
+
+# ---------------------------------------------------------------------------
+# import_page tests (no git dependency)
+# ---------------------------------------------------------------------------
+
+def test_import_single_page(tmp_path):
+ """Creates md-{name}.md with the given content."""
+ from import_myst import import_page
+
+ docs = tmp_path / "docs"
+ docs.mkdir()
+ content = b"# quick-start\nHello MyST\n"
+
+ result = import_page("quick-start", content, docs, force=False)
+
+ assert result is True
+ dest = docs / "md-quick-start.md"
+ assert dest.exists()
+ assert dest.read_bytes() == content
+
+
+def test_import_skip_identical(tmp_path):
+ """Returns False and does not modify the file when content is identical."""
+ from import_myst import import_page
+
+ docs = tmp_path / "docs"
+ docs.mkdir()
+ content = b"# quick-start\nIdentical content\n"
+ dest = docs / "md-quick-start.md"
+ dest.write_bytes(content)
+ mtime_before = dest.stat().st_mtime_ns
+
+ result = import_page("quick-start", content, docs, force=False)
+
+ assert result is False
+ assert dest.read_bytes() == content
+ assert dest.stat().st_mtime_ns == mtime_before
+
+
+def test_import_warn_different_without_force(tmp_path):
+ """Returns False and keeps old content when content differs and force=False."""
+ from import_myst import import_page
+
+ docs = tmp_path / "docs"
+ docs.mkdir()
+ old_content = b"# old content\n"
+ new_content = b"# new content\n"
+ dest = docs / "md-quick-start.md"
+ dest.write_bytes(old_content)
+
+ with warnings.catch_warnings(record=True) as caught:
+ warnings.simplefilter("always")
+ result = import_page("quick-start", new_content, docs, force=False)
+
+ assert result is False
+ assert dest.read_bytes() == old_content
+ assert len(caught) == 1
+ assert "force" in str(caught[0].message).lower()
+
+
+def test_import_overwrite_with_force(tmp_path):
+ """Returns True and writes new content when force=True."""
+ from import_myst import import_page
+
+ docs = tmp_path / "docs"
+ docs.mkdir()
+ old_content = b"# old content\n"
+ new_content = b"# new content\n"
+ dest = docs / "md-quick-start.md"
+ dest.write_bytes(old_content)
+
+ result = import_page("quick-start", new_content, docs, force=True)
+
+ assert result is True
+ assert dest.read_bytes() == new_content
+
+
+def test_import_nested_path(tmp_path):
+ """Creates parent dirs and writes md-{name}.md in the correct nested location."""
+ from import_myst import import_page
+
+ docs = tmp_path / "docs"
+ docs.mkdir()
+ content = b"# zone\nFirewall zone docs\n"
+
+ result = import_page("configuration/firewall/zone", content, docs, force=False)
+
+ assert result is True
+ dest = docs / "configuration" / "firewall" / "md-zone.md"
+ assert dest.exists()
+ assert dest.read_bytes() == content
+ # Parent dirs were created
+ assert (docs / "configuration" / "firewall").is_dir()