fix: react hook
This commit is contained in:
parent
0d2f58399c
commit
01cbb6265e
|
|
@ -93,7 +93,7 @@ const TemplateDetailPageV2: React.FC = () => {
|
|||
const success = await executeDelete(() => TemplateServiceV2.deleteTemplate(template.id))
|
||||
|
||||
if (success) {
|
||||
navigate('/templates-v2')
|
||||
navigate('/templates')
|
||||
} else if (deleteError) {
|
||||
alert('删除失败: ' + deleteError.message)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,219 +0,0 @@
|
|||
#!/usr/bin/env python3
|
||||
"""
|
||||
测试片段重命名功能
|
||||
"""
|
||||
|
||||
import sys
|
||||
import json
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
def parse_jsonrpc_response(stdout):
|
||||
"""解析 JSONRPC 格式的响应"""
|
||||
stdout = stdout.strip()
|
||||
if stdout.startswith("JSONRPC:"):
|
||||
stdout = stdout[8:] # 移除 "JSONRPC:" 前缀
|
||||
|
||||
response = json.loads(stdout)
|
||||
|
||||
# JSONRPC 格式检查
|
||||
if "result" in response:
|
||||
return True, response["result"]
|
||||
elif "error" in response:
|
||||
return False, response["error"]
|
||||
else:
|
||||
return False, response
|
||||
|
||||
def run_cli_command(args):
|
||||
"""运行CLI命令并返回结果"""
|
||||
try:
|
||||
cmd = ["python3", "-m", "python_core.cli"] + args
|
||||
print(f"Running: {' '.join(cmd)}")
|
||||
|
||||
result = subprocess.run(
|
||||
cmd,
|
||||
capture_output=True,
|
||||
text=True,
|
||||
cwd=Path(__file__).parent
|
||||
)
|
||||
|
||||
print(f"Return code: {result.returncode}")
|
||||
print(f"STDOUT: {result.stdout}")
|
||||
if result.stderr:
|
||||
print(f"STDERR: {result.stderr}")
|
||||
|
||||
return result
|
||||
except Exception as e:
|
||||
print(f"Error running command: {e}")
|
||||
return None
|
||||
|
||||
def test_segment_rename():
|
||||
"""测试片段重命名功能"""
|
||||
print("=" * 60)
|
||||
print("测试片段重命名功能")
|
||||
print("=" * 60)
|
||||
|
||||
# 1. 首先获取模板列表
|
||||
print("\n1. 获取模板列表...")
|
||||
result = run_cli_command(["template", "list", "--limit", "5", "--json"])
|
||||
|
||||
if not result or result.returncode != 0:
|
||||
print("❌ 获取模板列表失败")
|
||||
return False
|
||||
|
||||
try:
|
||||
success, data = parse_jsonrpc_response(result.stdout)
|
||||
if not success:
|
||||
print(f"❌ 模板列表API返回失败: {data}")
|
||||
return False
|
||||
|
||||
templates = data.get("templates", [])
|
||||
if not templates:
|
||||
print("❌ 没有找到模板")
|
||||
return False
|
||||
|
||||
template = templates[0]
|
||||
template_id = template["id"]
|
||||
print(f"✅ 找到模板: {template['name']} (ID: {template_id})")
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"❌ 解析模板列表响应失败: {e}")
|
||||
return False
|
||||
|
||||
# 2. 获取模板详情
|
||||
print(f"\n2. 获取模板详情...")
|
||||
result = run_cli_command(["template", "detail", template_id, "--json"])
|
||||
|
||||
if not result or result.returncode != 0:
|
||||
print("❌ 获取模板详情失败")
|
||||
return False
|
||||
|
||||
try:
|
||||
success, detail = parse_jsonrpc_response(result.stdout)
|
||||
if not success:
|
||||
print(f"❌ 模板详情API返回失败: {detail}")
|
||||
return False
|
||||
tracks = detail.get("tracks", [])
|
||||
|
||||
if not tracks:
|
||||
print("❌ 模板没有轨道")
|
||||
return False
|
||||
|
||||
# 找到第一个有片段的轨道
|
||||
segment = None
|
||||
segment_track = None
|
||||
for track in tracks:
|
||||
segments = track.get("segments", [])
|
||||
if segments:
|
||||
segment = segments[0]
|
||||
segment_track = track
|
||||
break
|
||||
|
||||
if not segment:
|
||||
print("❌ 模板没有片段")
|
||||
return False
|
||||
|
||||
segment_id = segment["id"]
|
||||
original_name = segment["name"]
|
||||
print(f"✅ 找到片段: {original_name} (ID: {segment_id})")
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"❌ 解析模板详情响应失败: {e}")
|
||||
return False
|
||||
|
||||
# 3. 更新片段名称
|
||||
new_name = f"测试重命名_{original_name}"
|
||||
print(f"\n3. 更新片段名称: '{original_name}' -> '{new_name}'")
|
||||
|
||||
result = run_cli_command([
|
||||
"template", "update-segment",
|
||||
template_id, segment_id, new_name,
|
||||
"--json", "--verbose"
|
||||
])
|
||||
|
||||
if not result or result.returncode != 0:
|
||||
print("❌ 更新片段名称失败")
|
||||
return False
|
||||
|
||||
try:
|
||||
success, update_data = parse_jsonrpc_response(result.stdout)
|
||||
if not success:
|
||||
print(f"❌ 更新片段名称API返回失败: {update_data}")
|
||||
return False
|
||||
|
||||
print(f"✅ 更新成功: {update_data}")
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"❌ 解析更新响应失败: {e}")
|
||||
return False
|
||||
|
||||
# 4. 验证更新结果
|
||||
print(f"\n4. 验证更新结果...")
|
||||
result = run_cli_command(["template", "detail", template_id, "--json"])
|
||||
|
||||
if not result or result.returncode != 0:
|
||||
print("❌ 重新获取模板详情失败")
|
||||
return False
|
||||
|
||||
try:
|
||||
success, detail = parse_jsonrpc_response(result.stdout)
|
||||
if not success:
|
||||
print(f"❌ 重新获取模板详情API返回失败: {detail}")
|
||||
return False
|
||||
tracks = detail.get("tracks", [])
|
||||
|
||||
# 查找更新后的片段
|
||||
updated_segment = None
|
||||
for track in tracks:
|
||||
for seg in track.get("segments", []):
|
||||
if seg["id"] == segment_id:
|
||||
updated_segment = seg
|
||||
break
|
||||
if updated_segment:
|
||||
break
|
||||
|
||||
if not updated_segment:
|
||||
print("❌ 找不到更新后的片段")
|
||||
return False
|
||||
|
||||
updated_name = updated_segment["name"]
|
||||
print(f"✅ 片段名称已更新: '{updated_name}'")
|
||||
|
||||
if updated_name == new_name:
|
||||
print("✅ 验证成功:片段名称更新正确")
|
||||
else:
|
||||
print(f"❌ 验证失败:期望 '{new_name}',实际 '{updated_name}'")
|
||||
return False
|
||||
|
||||
except json.JSONDecodeError as e:
|
||||
print(f"❌ 解析验证响应失败: {e}")
|
||||
return False
|
||||
|
||||
# 5. 恢复原始名称
|
||||
print(f"\n5. 恢复原始名称...")
|
||||
result = run_cli_command([
|
||||
"template", "update-segment",
|
||||
template_id, segment_id, original_name,
|
||||
"--json"
|
||||
])
|
||||
|
||||
if result and result.returncode == 0:
|
||||
try:
|
||||
success, data = parse_jsonrpc_response(result.stdout)
|
||||
if success:
|
||||
print("✅ 已恢复原始名称")
|
||||
else:
|
||||
print(f"⚠️ 恢复原始名称失败: {data}")
|
||||
except:
|
||||
print("⚠️ 恢复原始名称响应解析失败")
|
||||
else:
|
||||
print("⚠️ 恢复原始名称命令失败")
|
||||
|
||||
print("\n" + "=" * 60)
|
||||
print("✅ 片段重命名功能测试完成")
|
||||
print("=" * 60)
|
||||
return True
|
||||
|
||||
if __name__ == "__main__":
|
||||
success = test_segment_rename()
|
||||
sys.exit(0 if success else 1)
|
||||
Loading…
Reference in New Issue