Files
AnyImage/tests/tools/test_docs.py
nan 1e5fa4e6ba
Some checks failed
Test / test (push) Failing after 11m14s
chore: remove obsolete GitHub workflows and update documentation commands
2026-09-19 00:29:42 +08:00

81 lines
2.4 KiB
Python

from tests.support.paths import PROJECT_ROOT
import tomllib
import unittest
from tools.docs import documentation_command
from tools.docs import documentation_version
MKDOCS_FILE = PROJECT_ROOT / "mkdocs.yml"
DOCS_ROOT = PROJECT_ROOT / "docs"
def project_config():
return tomllib.loads(
(PROJECT_ROOT / "pyproject.toml").read_text(encoding="utf-8")
)
class DocumentationContentTest(unittest.TestCase):
def test_navigation_references_existing_markdown_files(self):
referenced_files = []
for line in MKDOCS_FILE.read_text(encoding="utf-8").splitlines():
value = line.rsplit(":", 1)[-1].strip().removeprefix("- ").strip()
if value.endswith(".md"):
referenced_files.append(value)
self.assertTrue(referenced_files)
for relative_path in referenced_files:
with self.subTest(relative_path=relative_path):
self.assertTrue((DOCS_ROOT / relative_path).is_file())
class DocumentationCommandTest(unittest.TestCase):
def test_documentation_version_omits_the_patch(self):
project_version = project_config()["project"]["version"]
major_minor = ".".join(project_version.split(".")[:2])
self.assertEqual(
documentation_version(),
f"{major_minor}.x",
)
def test_build_writes_the_multi_version_site_locally(self):
self.assertEqual(
documentation_command("build"),
("mike", "deploy", "--update-aliases", documentation_version(), "latest"),
)
self.assertNotIn("--push", documentation_command("build"))
def test_dev_serves_the_current_documentation_with_hot_reload(self):
self.assertEqual(
documentation_command("dev"),
("mkdocs", "serve"),
)
def test_deploy_publishes_the_version_series_as_latest(self):
self.assertEqual(
documentation_command("deploy"),
(
"mike",
"deploy",
"--update-aliases",
"--push",
"--allow-empty",
"--remote",
"omoolab",
documentation_version(),
"latest",
),
)
def test_project_exposes_the_docs_command(self):
self.assertEqual(
project_config()["project"]["scripts"]["docs"],
"tools.docs:main",
)
if __name__ == "__main__":
unittest.main()