Files
inecs f8d3cbdd59 Initial commit: VMware vSphere API simulator scaffold.
Add the FastAPI app, PostgreSQL migrations, Docker/Helm packaging, API
contracts, docs, client examples, and the unit/integration/compatibility
test suite for local client and tooling labs without a real vCenter.
2026-07-18 04:42:11 +03:00

38 lines
1.5 KiB
Python

"""OpenAPI tag categorization tests."""
from app.api.openapi import contract_openapi_tag, contract_openapi_tags, openapi_tag_metadata
def test_contract_openapi_tag_groups_by_domain() -> None:
assert contract_openapi_tag("/version") == "Core"
assert contract_openapi_tag("/access/ticket") == "Access"
assert contract_openapi_tag("/nodes/{node}/qemu/{vmid}/config") == "Nodes · QEMU"
assert contract_openapi_tag("/nodes/{node}/lxc/{vmid}/config") == "Nodes · LXC"
assert contract_openapi_tag("/nodes/{node}/ceph/osd") == "Nodes · Ceph"
assert contract_openapi_tag("/cluster/ha/resources") == "Cluster · HA"
assert contract_openapi_tag("/pools") == "Pools"
def test_contract_openapi_tags_include_renderer() -> None:
assert contract_openapi_tags("/version", "json") == ["Core", "API2 JSON"]
assert contract_openapi_tags("/version", "extjs") == ["Core", "API2 ExtJS"]
def test_openapi_tag_metadata_is_deterministic() -> None:
names = [entry["name"] for entry in openapi_tag_metadata()]
assert names == sorted(names)
assert "Simulator" in names
assert "vSphere REST" in names
assert "Nodes · QEMU" not in names
assert "API2 JSON" not in names
assert "Access" not in names
def test_openapi_tag_metadata_includes_pve_when_requested() -> None:
names = [entry["name"] for entry in openapi_tag_metadata(include_pve=True)]
assert names == sorted(names)
assert "Nodes · QEMU" in names
assert "API2 JSON" in names
assert "Access" in names
assert "Simulator" in names