#!/usr/bin/env python3 """ 强制更新功能测试示例 测试强制更新命令的功能,包括参数验证、配置更新、CDN缓存刷新等。 """ import sys import os import json from pathlib import Path # 添加项目根目录到Python路径 project_root = Path(__file__).parent.parent sys.path.insert(0, str(project_root)) from config_man.core.force_update_command import ForceUpdateCommand from config_man.utils.mock_rclone import patch_rclone def test_force_update_basic(): """测试基本强制更新功能""" print("🧪 测试基本强制更新功能") # 启用模拟环境 patch_rclone() # 创建强制更新命令处理器 force_cmd = ForceUpdateCommand(storage_path="ab", cdn_base_url="https://cdn.example.com") # 执行强制更新 success = force_cmd.execute( platform="android", target_version="0.29", update_version="0.30" ) print(f"✅ 强制更新测试结果: {'成功' if success else '失败'}") return success def test_force_update_ios(): """测试iOS平台强制更新""" print("\n🧪 测试iOS平台强制更新") # 启用模拟环境 patch_rclone() # 创建强制更新命令处理器 force_cmd = ForceUpdateCommand(storage_path="ab", cdn_base_url="https://cdn.example.com") # 执行强制更新 success = force_cmd.execute( platform="ios", target_version="0.29", update_version="0.30" ) print(f"✅ iOS强制更新测试结果: {'成功' if success else '失败'}") return success def test_force_update_validation(): """测试参数验证功能""" print("\n🧪 测试参数验证功能") # 启用模拟环境 patch_rclone() # 创建强制更新命令处理器 force_cmd = ForceUpdateCommand() # 测试无效平台 print("测试无效平台...") success1 = force_cmd.execute("invalid", "0.29", "0.30") print(f"无效平台测试结果: {'失败(预期)' if not success1 else '成功(意外)'}") # 测试无效版本格式 print("测试无效版本格式...") success2 = force_cmd.execute("android", "invalid", "0.30") print(f"无效版本格式测试结果: {'失败(预期)' if not success2 else '成功(意外)'}") # 测试相同版本 print("测试相同版本...") success3 = force_cmd.execute("android", "0.29", "0.29") print(f"相同版本测试结果: {'失败(预期)' if not success3 else '成功(意外)'}") return not success1 and not success2 and not success3 def test_force_update_comparison(): """测试配置对比功能""" print("\n🧪 测试配置对比功能") # 启用模拟环境 patch_rclone() # 创建强制更新命令处理器 force_cmd = ForceUpdateCommand(storage_path="ab", cdn_base_url="https://cdn.example.com") # 执行强制更新并观察对比输出 success = force_cmd.execute( platform="android", target_version="0.29", update_version="0.30" ) print(f"✅ 配置对比测试结果: {'成功' if success else '失败'}") return success def main(): """主测试函数""" print("🚀 开始强制更新功能测试") print("=" * 50) # 运行所有测试 tests = [ ("基本强制更新功能", test_force_update_basic), ("iOS平台强制更新", test_force_update_ios), ("参数验证功能", test_force_update_validation), ("配置对比功能", test_force_update_comparison), ] results = [] for test_name, test_func in tests: try: result = test_func() results.append((test_name, result)) except Exception as e: print(f"❌ {test_name} 测试异常: {e}") results.append((test_name, False)) # 显示测试结果 print("\n" + "=" * 50) print("📊 测试结果汇总:") passed = 0 for test_name, result in results: status = "✅ 通过" if result else "❌ 失败" print(f" {test_name}: {status}") if result: passed += 1 print(f"\n总计: {len(results)} 个测试,通过: {passed} 个,失败: {len(results) - passed} 个") if passed == len(results): print("🎉 所有测试通过!强制更新功能实现成功。") else: print("⚠️ 部分测试失败,请检查实现。") return passed == len(results) if __name__ == "__main__": success = main() sys.exit(0 if success else 1)