63 lines
1.7 KiB
Python
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
|