chore: initial commit (sources + docs, ignore build artifacts and secrets)
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import json
|
||||
|
||||
from mulit_agent_app.config import AgentConfig
|
||||
|
||||
|
||||
def test_controller_url_requires_secure_scheme(tmp_path):
|
||||
config = AgentConfig(tmp_path, tmp_path / "settings.json", tmp_path / "agent.sqlite3", tmp_path / "agent.log")
|
||||
|
||||
try:
|
||||
config.save_controller_url("http://127.0.0.1:8443")
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
raise AssertionError("An insecure controller URL must be rejected.")
|
||||
|
||||
|
||||
def test_portable_config_is_loaded_and_updated(monkeypatch, tmp_path):
|
||||
config_dir = tmp_path / "config"
|
||||
config_dir.mkdir()
|
||||
config_path = config_dir / "agent-config.json"
|
||||
config_path.write_text(
|
||||
json.dumps({"controller_url": "wss://10.0.0.8:8443", "agent_name": "build-agent"}),
|
||||
encoding="utf-8",
|
||||
)
|
||||
monkeypatch.setenv("MULTI_AGENT_CONFIG_DIR", str(config_dir))
|
||||
|
||||
config = AgentConfig.load()
|
||||
config.save_controller_url("wss://10.0.0.9:8443")
|
||||
|
||||
assert config.controller_url == "wss://10.0.0.8:8443"
|
||||
assert json.loads(config_path.read_text(encoding="utf-8"))["controller_url"] == "wss://10.0.0.9:8443"
|
||||
|
||||
|
||||
def test_agent_name_is_saved_in_portable_config(tmp_path):
|
||||
config_path = tmp_path / "agent-config.json"
|
||||
config = AgentConfig(tmp_path, config_path, tmp_path / "agent.sqlite3", tmp_path / "agent.log")
|
||||
|
||||
assert config.save_agent_name(" 设计部 Agent ") == "设计部 Agent"
|
||||
assert json.loads(config_path.read_text(encoding="utf-8"))["agent_name"] == "设计部 Agent"
|
||||
|
||||
|
||||
def test_persistent_settings_are_mirrored_to_the_portable_config(tmp_path):
|
||||
persistent_path = tmp_path / "app-data" / "agent-settings.json"
|
||||
portable_path = tmp_path / "release" / "config" / "agent-config.json"
|
||||
config = AgentConfig(
|
||||
tmp_path / "app-data",
|
||||
persistent_path,
|
||||
tmp_path / "app-data" / "agent.sqlite3",
|
||||
tmp_path / "app-data" / "agent.log",
|
||||
mirror_settings_path=portable_path,
|
||||
)
|
||||
|
||||
config.save_agent_name("长期保存的 Agent")
|
||||
reloaded = AgentConfig(
|
||||
tmp_path / "app-data",
|
||||
persistent_path,
|
||||
tmp_path / "app-data" / "agent.sqlite3",
|
||||
tmp_path / "app-data" / "agent.log",
|
||||
agent_name="长期保存的 Agent",
|
||||
mirror_settings_path=portable_path,
|
||||
)
|
||||
reloaded.save_controller_url("wss://10.0.0.9:8443")
|
||||
|
||||
expected = {"agent_name": "长期保存的 Agent", "controller_url": "wss://10.0.0.9:8443"}
|
||||
for path in (persistent_path, portable_path):
|
||||
saved = json.loads(path.read_text(encoding="utf-8"))
|
||||
assert {key: saved[key] for key in expected} == expected
|
||||
Reference in New Issue
Block a user