test: cover python source loader edge cases
This commit is contained in:
Vendored
+7
@@ -24,3 +24,10 @@ def upper(payload: EchoInput) -> EchoOutput:
|
|||||||
|
|
||||||
|
|
||||||
registry = [echo, upper]
|
registry = [echo, upper]
|
||||||
|
|
||||||
|
|
||||||
|
def callable_registry():
|
||||||
|
return {"echo": echo, "upper": upper}
|
||||||
|
|
||||||
|
|
||||||
|
duplicate_registry = [echo, echo]
|
||||||
|
|||||||
@@ -21,6 +21,39 @@ def test_load_python_source_from_sequence_registry() -> None:
|
|||||||
assert source.permissions.safe_for_workflow is True
|
assert source.permissions.safe_for_workflow is True
|
||||||
|
|
||||||
|
|
||||||
|
def test_load_python_source_from_callable_registry() -> None:
|
||||||
|
source = load_python_source(
|
||||||
|
source_id="local.ops",
|
||||||
|
module="tests.fixtures.python_source_ops",
|
||||||
|
registry="callable_registry",
|
||||||
|
)
|
||||||
|
|
||||||
|
assert set(source.capabilities.node_specs) == {
|
||||||
|
"local.ops.echo",
|
||||||
|
"local.ops.upper",
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def test_load_python_source_propagates_enabled_flag() -> None:
|
||||||
|
source = load_python_source(
|
||||||
|
source_id="local.ops",
|
||||||
|
module="tests.fixtures.python_source_ops",
|
||||||
|
registry="registry",
|
||||||
|
enabled=False,
|
||||||
|
)
|
||||||
|
|
||||||
|
assert source.enabled is False
|
||||||
|
|
||||||
|
|
||||||
|
def test_load_python_source_rejects_duplicate_qualified_names() -> None:
|
||||||
|
with pytest.raises(ValueError, match="duplicate NodeSpec names"):
|
||||||
|
load_python_source(
|
||||||
|
source_id="local.ops",
|
||||||
|
module="tests.fixtures.python_source_ops",
|
||||||
|
registry="duplicate_registry",
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
def test_load_python_source_rejects_missing_registry() -> None:
|
def test_load_python_source_rejects_missing_registry() -> None:
|
||||||
with pytest.raises(ValueError, match="missing registry object"):
|
with pytest.raises(ValueError, match="missing registry object"):
|
||||||
load_python_source(
|
load_python_source(
|
||||||
|
|||||||
Reference in New Issue
Block a user