54 lines
1.8 KiB
Python
54 lines
1.8 KiB
Python
from __future__ import annotations
|
|
|
|
import importlib.util
|
|
from pathlib import Path
|
|
|
|
|
|
def _load_migration_module():
|
|
path = (
|
|
Path(__file__).resolve().parents[1]
|
|
/ "alembic"
|
|
/ "versions"
|
|
/ "20260327_cleanup_model_routing_legacy_names.py"
|
|
)
|
|
spec = importlib.util.spec_from_file_location("model_routing_cleanup_migration", path)
|
|
module = importlib.util.module_from_spec(spec)
|
|
assert spec is not None
|
|
assert spec.loader is not None
|
|
spec.loader.exec_module(module)
|
|
return module
|
|
|
|
|
|
def test_rewrite_model_routing_config_renames_and_prunes_legacy_keys() -> None:
|
|
migration = _load_migration_module()
|
|
config = {
|
|
"mappings": {
|
|
"project_draft_analysis_glm47_fallback": {
|
|
"tier_alias": "low",
|
|
"updated_by": 1,
|
|
},
|
|
"project_draft_charter_glm47_fallback": {
|
|
"tier_alias": "low",
|
|
},
|
|
"adaptive_rag_answer_deep_signal_batch_analysis": {
|
|
"tier_alias": "high",
|
|
"updated_by": 2,
|
|
},
|
|
"ai_pmo_signal_title_refine": {
|
|
"tier_alias": "high",
|
|
"updated_by": 9,
|
|
},
|
|
},
|
|
}
|
|
|
|
rewritten = migration._rewrite_model_routing_config(config)
|
|
mappings = rewritten["mappings"]
|
|
|
|
assert mappings["ai_pmo_signal_title_refine"]["tier_alias"] == "high"
|
|
assert mappings["ai_pmo_signal_title_refine"]["updated_by"] == 9
|
|
assert mappings["ai_pmo_signal_batch_analysis"]["tier_alias"] == "high"
|
|
assert mappings["ai_pmo_signal_batch_analysis"]["updated_by"] == 2
|
|
assert "project_draft_analysis_glm47_fallback" not in mappings
|
|
assert "project_draft_charter_glm47_fallback" not in mappings
|
|
assert "adaptive_rag_answer_deep_signal_batch_analysis" not in mappings
|