Files
devplacepy/tests/unit/services/devii/agents/flag.py
T
retoor 3bfde87fdb Introduce Devii agents subsystem with supervisor, policy, and evals
- Add agents package: controller, runner, store, tools, actions, evals, policy
- Wire agents into Devii service, session, registry, CLI, and dispatcher
- Extend database schema and config for agent persistence
- Add news and telegram bridge updates plus landing UI and docs
- Cover agents, news, and telegram flows with unit tests
2026-10-26 02:54:44 +01:00

86 lines
2.5 KiB
Python

# retoor <retoor@molodetz.nl>
from devplacepy.database import get_setting, set_setting
from devplacepy.services.devii.config import FIELD_AGENTS_ENABLED
from devplacepy.services.devii.registry import CATALOG
from devplacepy.services.manager import service_manager
from devplacepy.services.devii import DeviiService
def _hub():
if service_manager.get_service("devii") is None:
service_manager.register(DeviiService())
svc = service_manager.get_service("devii")
return svc.hub(), svc
def _session(channel, owner_id):
hub, svc = _hub()
return hub.get_or_create(
"guest", owner_id, "guest", "", svc.instance_base_url(), is_admin=False, channel=channel
)
def _tool_names(session):
return {t["function"]["name"] for t in session.tools}
def _agent_names():
return {a.name for a in CATALOG.actions if a.handler == "agent"}
def test_flag_off_hides_every_agent_tool(local_db):
previous = get_setting(FIELD_AGENTS_ENABLED, "")
set_setting(FIELD_AGENTS_ENABLED, "")
try:
main = _session("main", "flag-off-main")
main._refresh_tools()
assert not (_tool_names(main) & _agent_names())
finally:
set_setting(FIELD_AGENTS_ENABLED, previous or "")
def test_flag_on_shows_five_supervision_tools(local_db):
previous = get_setting(FIELD_AGENTS_ENABLED, "")
set_setting(FIELD_AGENTS_ENABLED, "1")
try:
hub, svc = _hub()
user = hub.get_or_create(
"user",
"flag-on-user",
"flaguser",
"fake-key",
svc.instance_base_url(),
is_admin=False,
channel="main",
)
user._refresh_tools()
visible = _tool_names(user) & _agent_names()
assert visible == {
"agent_start",
"agent_status",
"agent_result",
"agent_cancel",
"agent_list",
}
guest = _session("main", "flag-on-guest")
guest._refresh_tools()
assert (_tool_names(guest) & _agent_names()) == {
"agent_status",
"agent_result",
"agent_list",
}
finally:
set_setting(FIELD_AGENTS_ENABLED, previous or "")
def test_docs_channel_ignores_flag(local_db):
previous = get_setting(FIELD_AGENTS_ENABLED, "")
set_setting(FIELD_AGENTS_ENABLED, "1")
try:
docs = _session("docs", "flag-on-docs")
docs._refresh_tools()
assert _tool_names(docs) == {"search_docs"}
finally:
set_setting(FIELD_AGENTS_ENABLED, previous or "")