Files
info-tech-canon/tests/test_api.py
2026-05-23 04:26:28 +02:00

50 lines
1.4 KiB
Python

from http import HTTPStatus
import shutil
from info_tech_canon.api import _route
from info_tech_canon.service import DEFAULT_INFOSPACE_ROOT, generate_indexes
def test_api_route_inspect() -> None:
status, payload = _route("/inspect", {}, None)
assert status == HTTPStatus.OK
assert payload["ok"] is True
assert payload["infospace"]["slug"] == "canon"
def test_api_route_validate() -> None:
status, payload = _route("/validate", {}, None)
assert status == HTTPStatus.OK
assert payload["ok"] is True
def test_api_route_unknown_endpoint() -> None:
status, payload = _route("/missing", {}, None)
assert status == HTTPStatus.NOT_FOUND
assert payload["ok"] is False
assert payload["error"]["code"] == "not_found"
def test_api_route_reads_generated_view(tmp_path) -> None:
root = tmp_path / "infospace"
shutil.copytree(DEFAULT_INFOSPACE_ROOT, root)
generate_indexes(root)
status, payload = _route("/views/by-standard.md", {}, root)
assert status == HTTPStatus.OK
assert payload["ok"] is True
assert payload["generated"] is True
assert "# By Standard" in payload["content"]
def test_api_route_validates_small_saas_profile() -> None:
status, payload = _route("/profiles/small-saas/validate", {}, None)
assert status == HTTPStatus.OK
assert payload["ok"] is True
assert payload["details"]["artifact_count"] == 14