chore: remove obsolete GitHub workflows and update documentation commands
Some checks failed
Test / test (push) Failing after 11m14s
Some checks failed
Test / test (push) Failing after 11m14s
This commit is contained in:
80
tests/tools/test_docs.py
Normal file
80
tests/tools/test_docs.py
Normal file
@@ -0,0 +1,80 @@
|
||||
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()
|
||||
Reference in New Issue
Block a user