mxivideo/test_category_cli.py

117 lines
3.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""
测试资源分类管理CLI功能
"""
import sys
import os
sys.path.insert(0, '/root/projects/mixvideo_v2')
from python_core.services.resource_category_manager import ResourceCategoryManager
def test_category_manager():
"""测试分类管理器基本功能"""
print("🧪 测试资源分类管理器...")
try:
# 创建管理器
manager = ResourceCategoryManager()
print("✅ ResourceCategoryManager 初始化成功")
# 创建测试分类
result1 = manager.create_category('商业', '商业相关的视频内容', '#FF6B6B')
print(f"✅ 创建分类1: {result1['title']} (ID: {result1['id'][:8]})")
result2 = manager.create_category('教育', '教育培训相关内容', '#4ECDC4')
print(f"✅ 创建分类2: {result2['title']} (ID: {result2['id'][:8]})")
result3 = manager.create_category('娱乐', '娱乐休闲相关内容', '#45B7D1')
print(f"✅ 创建分类3: {result3['title']} (ID: {result3['id'][:8]})")
# 获取所有分类
categories = manager.get_all_categories()
print(f"✅ 获取到 {len(categories)} 个分类")
# 搜索分类
search_results = manager.search_categories('商业')
print(f"✅ 搜索'商业'找到 {len(search_results)} 个结果")
# 更新分类
updated = manager.update_category(result1['id'], title='商业推广', color='#FF5555')
if updated:
print(f"✅ 更新分类成功: {updated['title']}")
# 获取单个分类
category = manager.get_category_by_id(result2['id'])
if category:
print(f"✅ 获取分类详情: {category['title']}")
print("\n📋 所有分类列表:")
for i, cat in enumerate(categories, 1):
print(f" {i}. {cat['title']} - {cat['color']} - {cat['ai_prompt'][:20]}...")
print("\n🎉 所有测试通过!")
return True
except Exception as e:
print(f"❌ 测试失败: {e}")
return False
def test_cli_import():
"""测试CLI模块导入"""
print("\n🧪 测试CLI模块导入...")
try:
from python_core.cli.commands.category import category_app
print("✅ category CLI模块导入成功")
from python_core.cli.cli import app
print("✅ 主CLI应用导入成功")
# 检查命令是否注册
commands = [cmd.name for cmd in app.registered_commands.values()]
groups = [group.name for group in app.registered_groups.values()]
print(f"✅ 注册的命令: {commands}")
print(f"✅ 注册的命令组: {groups}")
if 'category' in groups:
print("✅ category命令组已正确注册")
else:
print("❌ category命令组未注册")
return False
print("🎉 CLI导入测试通过")
return True
except Exception as e:
print(f"❌ CLI导入测试失败: {e}")
return False
def main():
"""主测试函数"""
print("🚀 开始测试资源分类管理CLI集成...")
# 测试分类管理器
manager_ok = test_category_manager()
# 测试CLI导入
cli_ok = test_cli_import()
if manager_ok and cli_ok:
print("\n🎉 所有测试通过资源分类管理CLI集成成功")
print("\n📖 使用方法:")
print(" python3 -m python_core.cli category --help")
print(" python3 -m python_core.cli category list")
print(" python3 -m python_core.cli category create '标题' 'AI提示词' '#颜色'")
print(" python3 -m python_core.cli category search '关键词'")
print(" python3 -m python_core.cli category stats")
else:
print("\n❌ 测试失败!")
sys.exit(1)
if __name__ == "__main__":
main()