40 lines
1.5 KiB
Python
40 lines
1.5 KiB
Python
"""is_meta_auto_trigger_enabled defaults OFF and reads meta_skill.auto_trigger."""
|
|
|
|
from __future__ import annotations
|
|
|
|
from types import SimpleNamespace
|
|
|
|
from opensquilla.skills.meta.enabled import is_meta_auto_trigger_enabled
|
|
|
|
|
|
def test_none_config_defaults_false() -> None:
|
|
# Unlike is_meta_skill_enabled (defaults True), missing config => manual-only.
|
|
assert is_meta_auto_trigger_enabled(None) is False
|
|
|
|
|
|
def test_mapping_direct_key() -> None:
|
|
assert is_meta_auto_trigger_enabled({"meta_skill_auto_trigger": True}) is True
|
|
assert is_meta_auto_trigger_enabled({"meta_skill_auto_trigger": False}) is False
|
|
|
|
|
|
def test_mapping_nested_meta_skill() -> None:
|
|
assert is_meta_auto_trigger_enabled({"meta_skill": {"auto_trigger": True}}) is True
|
|
# absent key => False
|
|
assert is_meta_auto_trigger_enabled({"meta_skill": {"enabled": True}}) is False
|
|
|
|
|
|
def test_mapping_gateway_config_recursion() -> None:
|
|
cfg = {"gateway_config": {"meta_skill": {"auto_trigger": True}}}
|
|
assert is_meta_auto_trigger_enabled(cfg) is True
|
|
|
|
|
|
def test_attribute_object() -> None:
|
|
cfg = SimpleNamespace(meta_skill=SimpleNamespace(enabled=True, auto_trigger=True))
|
|
assert is_meta_auto_trigger_enabled(cfg) is True
|
|
cfg_off = SimpleNamespace(meta_skill=SimpleNamespace(enabled=True, auto_trigger=False))
|
|
assert is_meta_auto_trigger_enabled(cfg_off) is False
|
|
|
|
|
|
def test_attribute_object_missing_meta_skill_defaults_false() -> None:
|
|
assert is_meta_auto_trigger_enabled(SimpleNamespace()) is False
|