63 lines
2.3 KiB
Python
63 lines
2.3 KiB
Python
import logging
|
|
import sys
|
|
from pathlib import Path
|
|
from utils.version_manager import VersionManager
|
|
|
|
# 配置日志
|
|
logging.basicConfig(
|
|
level=logging.INFO,
|
|
format='%(asctime)s - %(levelname)s - %(message)s',
|
|
handlers=[
|
|
logging.StreamHandler(sys.stdout),
|
|
logging.FileHandler('version_check.log')
|
|
]
|
|
)
|
|
|
|
def test_version_manager():
|
|
"""测试版本管理器功能"""
|
|
try:
|
|
vm = VersionManager()
|
|
logging.info(f"当前版本: {vm.current_version}")
|
|
logging.info(f"当前平台: {vm.platform}")
|
|
|
|
# 测试获取最新版本
|
|
logging.info("\n=== 测试获取最新版本 ===")
|
|
latest = vm.get_latest_version()
|
|
logging.info(f"最新版本信息: {latest}")
|
|
|
|
# 测试检查更新
|
|
logging.info("\n=== 测试检查更新 ===")
|
|
update_info = vm.check_update()
|
|
logging.info(f"更新检查结果: {update_info}")
|
|
|
|
# 测试是否需要更新
|
|
logging.info("\n=== 测试是否需要更新 ===")
|
|
has_update, is_force, version_info = vm.needs_update()
|
|
logging.info(f"是否有更新: {has_update}")
|
|
logging.info(f"是否强制更新: {is_force}")
|
|
logging.info(f"版本信息: {version_info}")
|
|
|
|
# 如果有更新,测试下载功能
|
|
if has_update and version_info:
|
|
logging.info("\n=== 测试下载更新 ===")
|
|
download_url = version_info.get('download_url')
|
|
if download_url:
|
|
save_path = Path.home() / "Downloads" / "CursorHelper" / "test_update.exe"
|
|
save_path.parent.mkdir(parents=True, exist_ok=True)
|
|
|
|
logging.info(f"下载地址: {download_url}")
|
|
logging.info(f"保存路径: {save_path}")
|
|
|
|
success = vm.download_update(download_url, str(save_path))
|
|
logging.info(f"下载结果: {'成功' if success else '失败'}")
|
|
|
|
if success:
|
|
logging.info(f"文件大小: {save_path.stat().st_size} 字节")
|
|
else:
|
|
logging.warning("未找到下载地址")
|
|
|
|
except Exception as e:
|
|
logging.error(f"测试过程中发生错误: {str(e)}", exc_info=True)
|
|
|
|
if __name__ == "__main__":
|
|
test_version_manager() |