PMFlow/backend/tests/test_model_routing_migratio...

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