generated from coulomb/repo-seed
Extensible canonical internal processing refactoring
This commit is contained in:
37
tests/test_cli_extension_specs.py
Normal file
37
tests/test_cli_extension_specs.py
Normal file
@@ -0,0 +1,37 @@
|
||||
from markitect_tool.cli.extensions import collect_cli_command_specs, command_specs_from_extension
|
||||
from markitect_tool.extension import ExtensionDescriptor, builtin_extension_registry
|
||||
|
||||
|
||||
def test_command_specs_from_extension_handles_string_and_list_forms():
|
||||
one = ExtensionDescriptor(id="one", kind="test", cli={"commands": "mkt one"})
|
||||
many = ExtensionDescriptor(id="many", kind="test", cli={"commands": ["mkt a", "mkt b"]})
|
||||
|
||||
assert [spec.command for spec in command_specs_from_extension(one)] == ["mkt one"]
|
||||
assert [spec.command for spec in command_specs_from_extension(many)] == ["mkt a", "mkt b"]
|
||||
|
||||
|
||||
def test_collect_cli_command_specs_from_builtin_registry():
|
||||
specs = collect_cli_command_specs(builtin_extension_registry())
|
||||
commands = {(spec.extension_id, spec.command) for spec in specs}
|
||||
|
||||
assert ("selector", "mkt query") in commands
|
||||
assert ("processor.uppercase", "mkt process") in commands
|
||||
assert ("backend.local-sqlite", "mkt cache index") in commands
|
||||
assert ("backend.local-sqlite", "mkt search") in commands
|
||||
|
||||
|
||||
def test_cli_command_spec_serializes_without_empty_fields():
|
||||
spec = command_specs_from_extension(
|
||||
ExtensionDescriptor(
|
||||
id="query.selector",
|
||||
kind="query-engine",
|
||||
summary="Selector engine",
|
||||
cli={"commands": ["mkt query"], "group": "query"},
|
||||
)
|
||||
)[0]
|
||||
|
||||
data = spec.to_dict()
|
||||
|
||||
assert data["command"] == "mkt query"
|
||||
assert data["extension_id"] == "query.selector"
|
||||
assert data["metadata"]["group"] == "query"
|
||||
Reference in New Issue
Block a user