34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
from __future__ import annotations
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
|
|
ROOT = Path(__file__).resolve().parents[1]
|
|
sys.path.insert(0, str(ROOT / "active-runtime/app"))
|
|
|
|
from aios_capability_contract import ( # noqa: E402
|
|
has_capabilities,
|
|
normalize_required_capabilities,
|
|
normalize_worker_capabilities,
|
|
)
|
|
|
|
|
|
@pytest.mark.parametrize("runtime", ["hermes", "openclaw"])
|
|
def test_runtime_capability_is_known_to_task_and_worker_vocabulary(runtime: str) -> None:
|
|
capability = f"agent.runtime.{runtime}"
|
|
assert normalize_required_capabilities([capability]) == frozenset({capability})
|
|
assert normalize_worker_capabilities([capability]) == frozenset({capability})
|
|
assert has_capabilities([capability], [capability]) is True
|
|
|
|
|
|
def test_runtime_capabilities_are_isolated_between_workers() -> None:
|
|
assert has_capabilities(["agent.runtime.hermes"], ["agent.runtime.openclaw"]) is False
|
|
assert has_capabilities(["agent.runtime.openclaw"], ["agent.runtime.hermes"]) is False
|
|
|
|
|
|
def test_unknown_runtime_capability_remains_fail_closed() -> None:
|
|
assert has_capabilities(["agent.runtime.hermes"], ["agent.runtime.unknown"]) is False
|