feat:表达方式可简化
This commit is contained in:
@@ -1,155 +0,0 @@
|
||||
from src.config.legacy_migration import try_migrate_legacy_bot_config_dict
|
||||
|
||||
|
||||
def test_legacy_empty_qq_account_is_migrated_to_zero():
|
||||
payload = {"bot": {"qq_account": ""}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "bot.qq_account_empty" in result.reason
|
||||
assert result.data["bot"]["qq_account"] == 0
|
||||
|
||||
|
||||
def test_legacy_learning_list_with_numeric_fourth_column_is_migrated():
|
||||
payload = {
|
||||
"expression": {
|
||||
"learning_list": [
|
||||
["qq:123456:group", "enable", "disable", "0.5"],
|
||||
["", "disable", "enable", "0.1"],
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "expression.learning_list" in result.reason
|
||||
assert result.data["expression"]["learning_list"] == [
|
||||
{
|
||||
"platform": "qq",
|
||||
"item_id": "123456",
|
||||
"rule_type": "group",
|
||||
"use_expression": True,
|
||||
"enable_learning": False,
|
||||
"enable_jargon_learning": False,
|
||||
},
|
||||
{
|
||||
"platform": "",
|
||||
"item_id": "",
|
||||
"rule_type": "group",
|
||||
"use_expression": False,
|
||||
"enable_learning": True,
|
||||
"enable_jargon_learning": False,
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def test_legacy_learning_list_with_string_bool_fourth_column_is_migrated():
|
||||
payload = {"expression": {"learning_list": [["qq::group", "enable", "enable", "true"]]}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "expression.learning_list" in result.reason
|
||||
assert result.data["expression"]["learning_list"] == [
|
||||
{
|
||||
"platform": "qq",
|
||||
"item_id": "",
|
||||
"rule_type": "group",
|
||||
"use_expression": True,
|
||||
"enable_learning": True,
|
||||
"enable_jargon_learning": True,
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
def test_legacy_expression_groups_empty_string_is_migrated():
|
||||
payload = {"expression": {"expression_groups": ""}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "expression.expression_groups" in result.reason
|
||||
assert result.data["expression"]["expression_groups"] == []
|
||||
|
||||
|
||||
def test_legacy_expression_groups_global_marker_is_migrated():
|
||||
payload = {"expression": {"expression_groups": [["*"]]}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "expression.expression_groups" in result.reason
|
||||
assert result.data["expression"]["expression_groups"] == [
|
||||
{
|
||||
"expression_groups": [
|
||||
{
|
||||
"platform": "*",
|
||||
"item_id": "*",
|
||||
"rule_type": "group",
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
|
||||
def test_empty_keyword_rules_are_dropped():
|
||||
payload = {
|
||||
"keyword_reaction": {
|
||||
"keyword_rules": [
|
||||
{"keywords": [], "reaction": ""},
|
||||
{"keywords": ["test"], "reaction": "ok"},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "keyword_reaction.keyword_rules_empty" in result.reason
|
||||
assert result.data["keyword_reaction"]["keyword_rules"] == [{"keywords": ["test"], "reaction": "ok"}]
|
||||
|
||||
|
||||
def test_visual_multimodal_planner_is_migrated_to_planner_mode():
|
||||
payload = {"visual": {"multimodal_planner": True}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "visual.multimodal_planner_moved_to_visual.planner_mode" in result.reason
|
||||
assert result.data["visual"]["planner_mode"] == "multimodal"
|
||||
assert "multimodal_planner" not in result.data["visual"]
|
||||
|
||||
|
||||
def test_chat_multimodal_planner_is_migrated_to_visual_planner_mode():
|
||||
payload = {"chat": {"multimodal_planner": True}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "chat.multimodal_planner_moved_to_visual.planner_mode" in result.reason
|
||||
assert result.data["visual"]["planner_mode"] == "multimodal"
|
||||
assert "multimodal_planner" not in result.data["chat"]
|
||||
|
||||
|
||||
def test_visual_multimodal_replyer_is_migrated_to_replyer_mode():
|
||||
payload = {"visual": {"multimodal_replyer": True}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "visual.multimodal_replyer_moved_to_visual.replyer_mode" in result.reason
|
||||
assert result.data["visual"]["replyer_mode"] == "multimodal"
|
||||
assert "multimodal_replyer" not in result.data["visual"]
|
||||
|
||||
|
||||
def test_chat_replyer_generator_type_is_migrated_to_replyer_mode():
|
||||
payload = {"chat": {"replyer_generator_type": "legacy"}}
|
||||
|
||||
result = try_migrate_legacy_bot_config_dict(payload)
|
||||
|
||||
assert result.migrated is True
|
||||
assert "chat.replyer_generator_type_moved_to_visual.replyer_mode" in result.reason
|
||||
assert result.data["visual"]["replyer_mode"] == "text"
|
||||
assert "replyer_generator_type" not in result.data["chat"]
|
||||
Reference in New Issue
Block a user