config: 新增 [run] mode 运行模式配置(cascade/doubao/deepseek)
- config.ini 全局生效,GUI 跟随配置,CLI --mode 参数可临时覆盖 - 必填项检查与首次配置对话框按模式过滤(仅豆包不要求 DeepSeek 配置,反之亦然) - 模板/示例/README 同步更新,新增 2 个配置测试(共 35 个全部通过)
This commit is contained in:
@@ -41,6 +41,28 @@ def test_missing_fields_none_when_filled():
|
||||
assert missing_fields(cfg) == []
|
||||
|
||||
|
||||
def test_missing_fields_mode_aware():
|
||||
cfg = AppConfig(ark_api_key="k", ark_model="ep", deepseek_api_key="", deepseek_model="m")
|
||||
# cascade 需要 DeepSeek Key
|
||||
assert len(missing_fields(cfg, "cascade")) == 1
|
||||
# doubao 模式不需要 DeepSeek 配置
|
||||
assert missing_fields(cfg, "doubao") == []
|
||||
# deepseek 模式不需要豆包配置
|
||||
assert missing_fields(AppConfig(deepseek_api_key="sk"), "deepseek") == []
|
||||
|
||||
|
||||
def test_mode_from_ini(tmp_path):
|
||||
ini = tmp_path / "config.ini"
|
||||
ini.write_text("[run]\nmode = deepseek\n", encoding="utf-8")
|
||||
assert load_config(str(ini)).mode == "deepseek"
|
||||
# 非法值回退 cascade
|
||||
ini.write_text("[run]\nmode = turbo\n", encoding="utf-8")
|
||||
assert load_config(str(ini)).mode == "cascade"
|
||||
# 未配置默认 cascade
|
||||
ini.write_text("[ark]\n", encoding="utf-8")
|
||||
assert load_config(str(ini)).mode == "cascade"
|
||||
|
||||
|
||||
def test_save_and_load_roundtrip(tmp_path):
|
||||
ini = tmp_path / "config.ini"
|
||||
cfg = AppConfig(ark_api_key="ark-key", ark_model="ep-xyz",
|
||||
|
||||
Reference in New Issue
Block a user