Files
markitect-tool/tests/test_builtin_extension_catalog.py
2026-05-14 22:05:34 +02:00

161 lines
5.5 KiB
Python

from markitect_tool.extension import builtin_extension_registry
def test_builtin_extension_registry_lists_query_processors_and_backend():
registry = builtin_extension_registry()
ids = [descriptor.id for descriptor in registry.list()]
assert "query.selector" not in ids
assert "selector" in ids
assert "jsonpath" in ids
assert "processor.identity" in ids
assert "processor.uppercase" in ids
assert "processor.include" in ids
assert "extension.catalog" in ids
assert "docs.generated-reference" in ids
assert "backend.local-sqlite" in ids
assert "workflow.markdown-dataflow" in ids
assert "runtime.context" in ids
assert "runtime.form-state" in ids
assert "runtime.assessment" in ids
assert "policy.local-label" in ids
assert "document.function" in ids
assert "memory.context-package" in ids
assert "source.adapter-registry" in ids
def test_builtin_meta_descriptors_expose_extension_and_docs_accesspoints():
registry = builtin_extension_registry()
extension = registry.get("extension.catalog")
docs = registry.get("docs.generated-reference")
assert extension.kind == "extension-registry"
assert "mkt extension commands" in extension.cli["commands"]
assert docs.kind == "documentation"
assert docs.safety["writes_files"] is True
assert docs.cli["commands"] == ["mkt docs cli", "mkt docs api"]
def test_builtin_processor_descriptors_capture_safety_and_provenance():
registry = builtin_extension_registry()
include = registry.get("processor.include")
uppercase = registry.get("processor.uppercase")
assert include.kind == "processor"
assert include.safety["reads_files"] is True
assert include.provenance_prefix == "processor.include"
assert uppercase.safety == {}
assert uppercase.provenance_prefix == "processor.uppercase"
def test_builtin_local_sqlite_descriptor_exposes_backend_capabilities():
registry = builtin_extension_registry()
descriptor = registry.get("backend.local-sqlite")
assert descriptor.kind == "backend"
assert {capability.id for capability in descriptor.capabilities} >= {
"snapshots",
"ast",
"json",
"fts",
"sql",
"provenance",
}
assert descriptor.cli["commands"] == [
"mkt cache init",
"mkt cache index",
"mkt cache query",
"mkt search",
]
def test_builtin_workflow_descriptor_exposes_cli_and_safety():
registry = builtin_extension_registry()
descriptor = registry.get("workflow.markdown-dataflow")
assert descriptor.kind == "workflow-engine"
assert descriptor.safety["writes_output_files"] is True
assert descriptor.safety["assisted_generation"] == "adapter-only"
assert descriptor.cli["commands"] == [
"mkt workflow inspect",
"mkt workflow plan",
"mkt workflow run",
]
def test_builtin_runtime_descriptors_expose_boundaries():
registry = builtin_extension_registry()
context = registry.get("runtime.context")
form_state = registry.get("runtime.form-state")
assessment = registry.get("runtime.assessment")
assert context.safety["reads_files"] is True
assert "mkt contract check --context" in context.cli["commands"]
assert {capability.id for capability in form_state.capabilities} >= {"forms", "rules"}
assert assessment.kind == "assessment-runner"
assert assessment.safety["provider_calls"] == "adapter-only"
def test_builtin_policy_descriptor_exposes_cli_and_adapter_boundary():
registry = builtin_extension_registry()
descriptor = registry.get("policy.local-label")
assert descriptor.kind == "policy-gateway"
assert descriptor.safety["network"] is False
assert {capability.id for capability in descriptor.capabilities} >= {
"policy",
"policy_filter",
"identity_claims",
"resource_manifest",
"decision_log",
}
assert "mkt policy check" in descriptor.cli["commands"]
assert "mkt policy subject" in descriptor.cli["commands"]
assert "mkt policy resource-manifest" in descriptor.cli["commands"]
assert "IdentityClaimsAdapter" in descriptor.metadata["external_adapters"]
assert "RelationshipPolicyAdapter" in descriptor.metadata["external_adapters"]
def test_builtin_document_function_descriptor_exposes_deterministic_boundary():
registry = builtin_extension_registry()
descriptor = registry.get("document.function")
assert descriptor.kind == "document-function"
assert descriptor.safety["network"] is False
assert descriptor.metadata["external_policy_services_required"] is False
assert {capability.id for capability in descriptor.capabilities} >= {
"document_function",
"deterministic",
}
assert descriptor.cli["commands"] == [
"mkt function list",
"mkt function check",
"mkt function render",
]
def test_builtin_memory_descriptor_exposes_local_optional_boundary():
registry = builtin_extension_registry()
descriptor = registry.get("memory.context-package")
assert descriptor.kind == "memory-registry"
assert descriptor.safety["network"] is False
assert descriptor.safety["writes_local_context_registry"] is True
assert descriptor.metadata["external_policy_services_required"] is False
assert {capability.id for capability in descriptor.capabilities} >= {
"context_packages",
"context_activation",
"policy_filter",
}
assert "mkt context pack" in descriptor.cli["commands"]
assert "mkt context activate" in descriptor.cli["commands"]