Kamixitong/debug_license.py
2025-11-11 21:39:12 +08:00

66 lines
2.1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
调试卡密生成过程
"""
import sys
import os
# 添加项目路径
sys.path.insert(0, os.path.dirname(os.path.abspath(__file__)))
# 导入应用和模型
from app import create_app
from app.models.license import License
import secrets
import string
def debug_license_generation():
"""调试卡密生成过程"""
print("=== 调试卡密生成 ===")
try:
# 直接测试卡密生成逻辑,不依赖数据库查询
print("1. 测试生成单个卡密...")
chars = string.ascii_uppercase + string.digits
random_chars = ''.join(secrets.choice(chars) for _ in range(32))
# 格式化为XXXX-XXXX-XXXX-XXXX格式
formatted_key = '-'.join([
random_chars[i:i+8] for i in range(0, len(random_chars), 8)
])
print(f" 生成的卡密: {formatted_key}")
# 验证格式
parts = formatted_key.split('-')
print(f" 格式检查: {len(parts)} 部分")
for i, part in enumerate(parts):
print(f"{i+1}部分: {part} ({len(part)} 字符)")
if len(parts) == 4 and all(len(part) == 8 for part in parts):
print(" ✓ 格式正确")
else:
print(" ✗ 格式错误")
# 测试卡密验证
print("\n2. 测试卡密验证...")
from app.utils.validators import LicenseValidator
validator = LicenseValidator()
is_valid = validator.validate_license_key(formatted_key)
print(f" 验证结果: {'通过' if is_valid else '失败'}")
# 测试格式化函数
print("\n3. 测试格式化函数...")
formatted_again = validator.format_license_key("ABCDEFGHIJKLMNOPQRSTUVWXZY12345678")
print(f" 原始卡密: ABCDEFGHIJKLMNOPQRSTUVWXZY12345678")
print(f" 格式化后: {formatted_again}")
except Exception as e:
print(f" ✗ 发生错误: {e}")
import traceback
traceback.print_exc()
if __name__ == "__main__":
debug_license_generation()