Files
capcut-mate/tests/test_add_keyframes_refactor.py
2025-12-10 22:53:33 +08:00

76 lines
2.3 KiB
Python

import sys
import os
import json
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
from src.service.add_keyframes import parse_keyframes_data
def test_parse_keyframes_data():
"""测试关键帧数据解析"""
print("Testing keyframe data parsing...")
# 测试数据
test_keyframes = [
{
"segment_id": "segment-1",
"property": "KFTypePositionX",
"offset": 0.0,
"value": 0.0
},
{
"segment_id": "segment-1",
"property": "KFTypePositionX",
"offset": 1.0,
"value": 0.5
}
]
# 将测试数据转换为JSON字符串
keyframes_json = json.dumps(test_keyframes)
# 解析关键帧数据
parsed_keyframes = parse_keyframes_data(keyframes_json)
# 验证解析结果
assert len(parsed_keyframes) == 2
assert parsed_keyframes[0]["segment_id"] == "segment-1"
assert parsed_keyframes[0]["property"] == "KFTypePositionX"
assert parsed_keyframes[0]["offset"] == 0.0
assert parsed_keyframes[0]["value"] == 0.0
assert parsed_keyframes[1]["segment_id"] == "segment-1"
assert parsed_keyframes[1]["property"] == "KFTypePositionX"
assert parsed_keyframes[1]["offset"] == 1.0
assert parsed_keyframes[1]["value"] == 0.5
print("✓ Keyframe data parsing test passed")
def test_parse_invalid_keyframes_data():
"""测试无效关键帧数据解析"""
print("Testing invalid keyframe data parsing...")
# 测试缺少必填字段的数据
invalid_keyframes = [
{
"segment_id": "segment-1",
"property": "KFTypePositionX",
# 缺少offset和value字段
}
]
# 将测试数据转换为JSON字符串
keyframes_json = json.dumps(invalid_keyframes)
# 尝试解析关键帧数据,应该抛出异常
try:
parse_keyframes_data(keyframes_json)
assert False, "Should have raised an exception"
except Exception as e:
print(f"✓ Invalid keyframe data parsing test passed, caught expected exception: {e}")
if __name__ == "__main__":
print("Running add_keyframes refactor tests...")
test_parse_keyframes_data()
test_parse_invalid_keyframes_data()
print("All tests passed!")