perf:修改默认配置
This commit is contained in:
76
tests/test_config_upgrade_hooks.py
Normal file
76
tests/test_config_upgrade_hooks.py
Normal file
@@ -0,0 +1,76 @@
|
||||
from pathlib import Path
|
||||
|
||||
import sys
|
||||
|
||||
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
|
||||
|
||||
from src.config.config_upgrade_hooks import (
|
||||
BOT_CONFIG_UPGRADE_HOOKS,
|
||||
ConfigUpgradeHook,
|
||||
apply_config_upgrade_hooks,
|
||||
set_nested_config_value,
|
||||
)
|
||||
from src.config.official_configs import ChatConfig
|
||||
|
||||
import src.config.config_upgrade_hooks as hooks
|
||||
|
||||
|
||||
def test_apply_config_upgrade_hooks_runs_when_target_version_is_crossed(monkeypatch):
|
||||
def migrate(data):
|
||||
changed = set_nested_config_value(data, ("chat", "enable"), False)
|
||||
return ["chat.enable"] if changed else []
|
||||
|
||||
monkeypatch.setattr(
|
||||
hooks,
|
||||
"BOT_CONFIG_UPGRADE_HOOKS",
|
||||
(ConfigUpgradeHook(target_version="8.10.11", config_names=("bot_config.toml",), migrate=migrate),),
|
||||
)
|
||||
|
||||
data = {"chat": {"enable": True}}
|
||||
result = apply_config_upgrade_hooks(data, "bot_config.toml", "8.10.10", "8.10.11")
|
||||
|
||||
assert result.migrated is True
|
||||
assert result.reason == "8.10.11:chat.enable"
|
||||
assert result.data["chat"]["enable"] is False
|
||||
|
||||
|
||||
def test_apply_config_upgrade_hooks_skips_versions_outside_upgrade_range(monkeypatch):
|
||||
def migrate(data):
|
||||
set_nested_config_value(data, ("chat", "enable"), False)
|
||||
return ["chat.enable"]
|
||||
|
||||
monkeypatch.setattr(
|
||||
hooks,
|
||||
"BOT_CONFIG_UPGRADE_HOOKS",
|
||||
(ConfigUpgradeHook(target_version="8.10.11", config_names=("bot_config.toml",), migrate=migrate),),
|
||||
)
|
||||
|
||||
data = {"chat": {"enable": True}}
|
||||
result = apply_config_upgrade_hooks(data, "bot_config.toml", "8.10.11", "8.10.12")
|
||||
|
||||
assert result.migrated is False
|
||||
assert result.data["chat"]["enable"] is True
|
||||
|
||||
|
||||
def test_set_nested_config_value_can_keep_existing_value():
|
||||
data = {"webui": {"port": 8001}}
|
||||
|
||||
changed = set_nested_config_value(data, ("webui", "port"), 8080, force=False)
|
||||
|
||||
assert changed is False
|
||||
assert data["webui"]["port"] == 8001
|
||||
|
||||
|
||||
def test_builtin_hook_resets_group_chat_prompt_when_upgrading_from_8_10_10():
|
||||
data = {"chat": {"group_chat_prompt": "自定义旧提示词"}}
|
||||
|
||||
result = apply_config_upgrade_hooks(data, "bot_config.toml", "8.10.10", "8.10.11")
|
||||
|
||||
assert result.migrated is True
|
||||
assert result.reason == "8.10.11:chat.group_chat_prompt"
|
||||
assert result.data["chat"]["group_chat_prompt"] == ChatConfig().group_chat_prompt
|
||||
|
||||
|
||||
def test_bot_config_upgrade_hooks_register_group_chat_prompt_reset():
|
||||
assert len(BOT_CONFIG_UPGRADE_HOOKS) == 1
|
||||
assert BOT_CONFIG_UPGRADE_HOOKS[0].target_version == "8.10.11"
|
||||
Reference in New Issue
Block a user