generated from coulomb/repo-seed
160 lines
5.5 KiB
Python
160 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
|
|
|
|
|
|
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"]
|