cmvr_edge_ai/tests/unit/test_builtin_plugins.py

25 lines
800 B
Python
Raw Normal View History

2026-07-20 16:59:37 +08:00
from __future__ import annotations
import asyncio
from cmvr_edge_ai.plugins import PluginRegistry, register_builtin_plugins
def test_builtin_source_cannot_emit_an_undeclared_dynamic_port() -> None:
registry = PluginRegistry()
register_builtin_plugins(registry)
source = registry.create(
"core.sequence_source@1",
"source",
{"items": ["message"], "output_port": "undeclared"},
)
async def collect(): # type: ignore[no-untyped-def]
return [emission async for emission in source.messages()]
emissions = asyncio.run(collect())
declared_ports = registry.resolve("core.sequence_source@1").outputs
assert [emission.port for emission in emissions] == ["output"]
assert all(emission.port in declared_ports for emission in emissions)