Files
devplacepy/tests/unit/services/devii/tool_prefs.py
T

57 lines
2.1 KiB
Python
Raw Normal View History

# retoor <retoor@molodetz.nl>
from devplacepy.services.devii import tool_prefs
def test_disabled_tool_names_round_trips(local_db):
try:
tool_prefs.set_disabled_tool_names({"create_post", "delete_post"})
assert tool_prefs.disabled_tool_names() == frozenset({"create_post", "delete_post"})
finally:
tool_prefs.set_disabled_tool_names(set())
def test_set_disabled_tool_names_drops_unknown_names(local_db):
try:
tool_prefs.set_disabled_tool_names({"create_post", "not_a_real_tool_xyz"})
assert tool_prefs.disabled_tool_names() == frozenset({"create_post"})
finally:
tool_prefs.set_disabled_tool_names(set())
def test_disabled_tool_names_empty_by_default(local_db):
tool_prefs.set_disabled_tool_names(set())
assert tool_prefs.disabled_tool_names() == frozenset()
def test_filter_disabled_removes_matching_schemas():
schemas = [
{"function": {"name": "create_post"}},
{"function": {"name": "list_posts"}},
]
result = tool_prefs.filter_disabled(schemas, disabled=frozenset({"create_post"}))
assert [s["function"]["name"] for s in result] == ["list_posts"]
def test_filter_disabled_is_a_no_op_when_nothing_disabled():
schemas = [{"function": {"name": "create_post"}}]
assert tool_prefs.filter_disabled(schemas, disabled=frozenset()) == schemas
def test_group_overview_covers_every_group_and_marks_disabled(local_db):
try:
tool_prefs.set_disabled_tool_names({"create_post"})
overview = tool_prefs.group_overview()
assert len(overview) == len(tool_prefs.GROUPS)
posts_group = next(g for g in overview if g["key"] == "posts")
create_post_tool = next(t for t in posts_group["tools"] if t["name"] == "create_post")
assert create_post_tool["disabled"] is True
assert posts_group["enabled_count"] == posts_group["total_count"] - 1
finally:
tool_prefs.set_disabled_tool_names(set())
def test_groups_by_tool_name_covers_every_action_in_every_group():
total_actions = sum(len(actions) for actions in tool_prefs.GROUPS.values())
assert len(tool_prefs.GROUPS_BY_TOOL_NAME) == total_actions