mirror of
https://github.com/HKUDS/nanobot.git
synced 2026-08-13 07:39:15 +03:00
refactor(webui): split settings backend by domain (#5323)
This commit is contained in:
@@ -0,0 +1,44 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from nanobot.config.schema import Config
|
||||
from nanobot.webui.settings_system import (
|
||||
coerce_channel_value,
|
||||
system_settings_payload,
|
||||
update_agent_system_settings,
|
||||
)
|
||||
|
||||
|
||||
def test_system_domain_owns_runtime_dto_and_agent_updates(tmp_path) -> None:
|
||||
config = Config()
|
||||
|
||||
changed, restart_required = update_agent_system_settings(
|
||||
config,
|
||||
{
|
||||
"timezone": ["Asia/Shanghai"],
|
||||
"tool_hint_max_length": ["120"],
|
||||
},
|
||||
)
|
||||
payload = system_settings_payload(
|
||||
config,
|
||||
config_path=tmp_path / "config.json",
|
||||
version="0.3.0",
|
||||
)
|
||||
|
||||
assert changed is True
|
||||
assert restart_required is True
|
||||
assert config.agents.defaults.timezone == "Asia/Shanghai"
|
||||
assert config.agents.defaults.timezone_mode == "manual"
|
||||
assert config.agents.defaults.tool_hint_max_length == 120
|
||||
assert payload["runtime"]["config_path"] == str(tmp_path / "config.json")
|
||||
assert payload["version"] == {"current": "0.3.0"}
|
||||
assert payload["docs"]["version"] == "0.3.0"
|
||||
assert set(payload) == {"runtime", "usage", "advanced", "version", "docs"}
|
||||
|
||||
|
||||
def test_system_domain_validates_channel_field_values() -> None:
|
||||
assert coerce_channel_value("allow_from", "alice, bob", "list") == [
|
||||
"alice",
|
||||
"bob",
|
||||
]
|
||||
assert coerce_channel_value("enabled", "yes", "bool") is True
|
||||
assert coerce_channel_value("port", "8765", "int") == 8765
|
||||
Reference in New Issue
Block a user