CmdForge/tests/test_packaging.py

63 lines
1.7 KiB
Python

"""Release metadata checks for the public Python distribution."""
from pathlib import Path
import sys
import pytest
if sys.version_info >= (3, 11):
import tomllib
else:
tomllib = pytest.importorskip("tomli")
from cmdforge import __version__
ROOT = Path(__file__).resolve().parents[1]
def _project_metadata() -> dict:
with (ROOT / "pyproject.toml").open("rb") as handle:
return tomllib.load(handle)["project"]
def test_runtime_and_distribution_versions_match():
assert _project_metadata()["version"] == __version__
def test_public_distribution_metadata_is_complete():
project = _project_metadata()
assert project["name"] == "cmdforge"
assert project["readme"] == "PYPI_README.md"
assert project["license"] == "MIT"
assert project["license-files"] == ["LICENSE"]
assert project["requires-python"] == ">=3.10"
assert {"Homepage", "Documentation", "Repository", "Issues", "Changelog"} <= set(
project["urls"]
)
def test_public_readme_describes_installation_and_current_capabilities():
readme = (ROOT / "PYPI_README.md").read_text(encoding="utf-8")
for term in (
'pipx install "cmdforge[mcp,pty]"',
"cmdforge providers discover",
"cmdforge mcp configure codex",
"--no-fallback",
"--result-envelope json",
):
assert term in readme
assert (ROOT / "LICENSE").is_file()
def test_web_templates_and_static_are_declared_as_package_data():
with (ROOT / "pyproject.toml").open("rb") as handle:
data = tomllib.load(handle)
package_data = data["tool"]["setuptools"]["package-data"]["cmdforge.web"]
assert "templates/**/*.html" in package_data
assert "static/**/*" in package_data