generated from coulomb/repo-seed
Extensible canonical internal processing refactoring
This commit is contained in:
28
tests/test_query_engine_registry.py
Normal file
28
tests/test_query_engine_registry.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from markitect_tool.core import parse_markdown
|
||||
from markitect_tool.query import (
|
||||
default_query_engine_registry,
|
||||
extract_document_with_engine,
|
||||
query_document_with_engine,
|
||||
)
|
||||
|
||||
|
||||
def test_default_query_engine_registry_exposes_builtin_descriptors():
|
||||
registry = default_query_engine_registry()
|
||||
|
||||
descriptors = registry.extension_registry().to_dict()["extensions"]
|
||||
|
||||
assert [engine.descriptor.id for engine in registry.list()] == ["jsonpath", "selector"]
|
||||
assert {descriptor["id"] for descriptor in descriptors} == {"selector", "jsonpath"}
|
||||
assert registry.get("selector").descriptor.cli["commands"][0] == "mkt query"
|
||||
assert registry.get("jsonpath").descriptor.optional_dependencies[0].name == "jsonpath_ng"
|
||||
|
||||
|
||||
def test_query_document_with_engine_uses_selector_registry():
|
||||
document = parse_markdown("# Doc\n\n## Decision\n\nChosen.\n")
|
||||
|
||||
matches = query_document_with_engine(document, "sections[heading=Decision]", engine="selector")
|
||||
extracted = extract_document_with_engine(document, "sections[heading=Decision]", engine="selector")
|
||||
|
||||
assert matches[0].kind == "section"
|
||||
assert matches[0].path == "$.sections[1]"
|
||||
assert extracted == ["## Decision\n\nChosen."]
|
||||
Reference in New Issue
Block a user