# retoor 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