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

70 lines
2.2 KiB
Python

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
from app import create_app
from app.api.admin import validate_admin_data
def verify_fix():
"""
验证密码验证逻辑修复
"""
app = create_app()
with app.app_context():
print("=== 验证密码验证逻辑修复 ===")
# 测试1: 正常创建管理员数据
print("\n1. 测试正常创建管理员数据...")
valid_data = {
"username": "testuser",
"email": "test@example.com",
"password": "testpassword123",
"role": 0,
"status": 1
}
is_valid, message = validate_admin_data(valid_data, is_create=True)
print(f" 验证结果: {is_valid}")
print(f" 消息: {message}")
if is_valid:
print(" ✅ 正常数据验证通过")
else:
print(" ❌ 正常数据验证失败")
# 测试2: 创建时密码为空
print("\n2. 测试创建时密码为空...")
empty_password_data = {
"username": "testuser2",
"email": "test2@example.com",
"password": "",
"role": 0,
"status": 1
}
is_valid, message = validate_admin_data(empty_password_data, is_create=True)
print(f" 验证结果: {is_valid}")
print(f" 消息: {message}")
if not is_valid and "密码不能为空" in message:
print(" ✅ 空密码正确拦截")
else:
print(" ❌ 空密码未正确拦截")
# 测试3: 更新时密码为空(应该允许)
print("\n3. 测试更新时密码为空...")
update_data = {
"email": "update@example.com",
"password": "", # 更新时密码可以为空
"role": 1,
"status": 1
}
is_valid, message = validate_admin_data(update_data, is_create=False)
print(f" 验证结果: {is_valid}")
print(f" 消息: {message}")
if is_valid:
print(" ✅ 更新时空密码允许")
else:
print(" ❌ 更新时空密码不应拦截")
if __name__ == "__main__":
verify_fix()