social_media_auto_publisher/test_models_fixed.py

91 lines
2.6 KiB
Python
Raw Normal View History

2025-11-12 00:28:07 +08:00
#!/usr/bin/env python3
"""
修复后的模型定义测试脚本
"""
import sys
from dataclasses import dataclass, field
from datetime import datetime
from enum import Enum
from typing import Optional, List, Dict, Any
from pathlib import Path
def test_model_definitions():
"""测试修复后的模型定义"""
try:
# 定义枚举
class PlatformType(Enum):
XIAOHONGSHU = "xiaohongshu"
DOUYIN = "douyin"
# 使用正确的继承方式
@dataclass
class Content:
title: str
description: str
tags: List[str] = field(default_factory=list)
visibility: str = "public"
location: Optional[str] = None
# 将子类定义为独立的类,不继承以避免参数顺序问题
@dataclass
class ImageNote:
title: str
description: str
images: List[str] = field(default_factory=list)
tags: List[str] = field(default_factory=list)
visibility: str = "public"
location: Optional[str] = None
cover_image: Optional[str] = None
@dataclass
class VideoContent:
title: str
description: str
video_path: str
tags: List[str] = field(default_factory=list)
visibility: str = "public"
location: Optional[str] = None
cover_image: Optional[str] = None
duration: Optional[int] = None
# 测试实例化
note = ImageNote(
title="测试标题",
description="测试描述",
images=["test1.jpg", "test2.jpg"]
)
video = VideoContent(
title="视频标题",
description="视频描述",
video_path="test.mp4"
)
print(f"✅ 图文笔记: {note.title}, 图片数: {len(note.images)}")
print(f"✅ 视频内容: {video.title}, 路径: {video.video_path}")
print(f"✅ 平台类型: {PlatformType.XIAOHONGSHU}")
return True
except Exception as e:
print(f"❌ 模型定义测试失败: {e}")
import traceback
traceback.print_exc()
return False
def main():
"""主测试函数"""
print("🚀 开始修复后的模型定义测试")
print("=" * 50)
if test_model_definitions():
print("\n🎉 修复后的模型定义测试通过!")
return True
else:
print("\n❌ 修复后的模型定义测试失败!")
return False
if __name__ == "__main__":
success = main()
sys.exit(0 if success else 1)