fix: run_gates must use current_tree after video resample

This commit is contained in:
2026-07-14 13:40:46 -04:00
parent 92714db370
commit 25f2a845ff
2 changed files with 26 additions and 1 deletions
+25
View File
@@ -0,0 +1,25 @@
"""守卫 gate tree 错配 bugrun_gates 必须用 current_tree(换视频后的当前树)。"""
import ast
from pathlib import Path
_PIPELINE = Path(__file__).resolve().parents[2] / "app" / "question_gen" / "pipeline_v2.py"
def _find_run_gates_tree_arg() -> str:
"""解析 pipeline_v2.py,返回 run_gates 调用中 tree= 关键字实参的变量名。"""
tree_src = ast.parse(_PIPELINE.read_text(encoding="utf-8"))
for node in ast.walk(tree_src):
if isinstance(node, ast.Call):
func = node.func
name = getattr(func, "id", None) or getattr(func, "attr", None)
if name == "run_gates":
for kw in node.keywords:
if kw.arg == "tree":
assert isinstance(kw.value, ast.Name)
return kw.value.id
raise AssertionError("未找到 run_gates 的 tree= 关键字实参")
def test_run_gates_uses_current_tree():
assert _find_run_gates_tree_arg() == "current_tree"