135 lines
4.4 KiB
Python
135 lines
4.4 KiB
Python
#!/usr/bin/env python
|
||
# -*- coding: utf-8 -*-
|
||
"""
|
||
综合测试修复后的账号创建API
|
||
"""
|
||
|
||
import json
|
||
from app import create_app
|
||
from app.api.admin import validate_admin_data
|
||
|
||
def test_backend_logic():
|
||
"""测试后端逻辑"""
|
||
print("=== 测试后端逻辑 ===")
|
||
app = create_app()
|
||
|
||
with app.app_context():
|
||
# 模拟API接收到的数据
|
||
|
||
# 情况1: 没有password字段(前端密码为空时不会发送)
|
||
data1 = {
|
||
"username": "test_user1",
|
||
"email": "test1@example.com",
|
||
"role": 0,
|
||
"status": 1
|
||
# 注意:没有password字段
|
||
}
|
||
|
||
print("\n情况1: 没有password字段")
|
||
print(f"接收到的数据: {json.dumps(data1, ensure_ascii=False)}")
|
||
|
||
# 模拟后端处理逻辑(修复后的版本)
|
||
password1 = data1.get('password', '')
|
||
print(f"提取的密码: '{password1}'")
|
||
print(f"'password'键是否存在: {'password' in data1}")
|
||
print(f"密码是否为空: {not password1}")
|
||
|
||
if 'password' not in data1 or not password1:
|
||
print("❌ 验证失败: 密码不能为空")
|
||
else:
|
||
print("✅ 验证通过")
|
||
|
||
# 情况2: 空密码字段
|
||
data2 = {
|
||
"username": "test_user2",
|
||
"email": "test2@example.com",
|
||
"password": "", # 空密码
|
||
"role": 0,
|
||
"status": 1
|
||
}
|
||
|
||
print("\n情况2: 空密码字段")
|
||
print(f"接收到的数据: {json.dumps(data2, ensure_ascii=False)}")
|
||
|
||
# 模拟后端处理逻辑
|
||
password2 = data2.get('password', '')
|
||
print(f"提取的密码: '{password2}'")
|
||
print(f"'password'键是否存在: {'password' in data2}")
|
||
print(f"密码是否为空: {not password2}")
|
||
|
||
if 'password' not in data2 or not password2:
|
||
print("❌ 验证失败: 密码不能为空")
|
||
else:
|
||
print("✅ 验证通过")
|
||
|
||
# 情况3: 有效密码
|
||
data3 = {
|
||
"username": "test_user3",
|
||
"email": "test3@example.com",
|
||
"password": "ValidPass123!", # 有效密码
|
||
"role": 0,
|
||
"status": 1
|
||
}
|
||
|
||
print("\n情况3: 有效密码")
|
||
print(f"接收到的数据: {json.dumps(data3, ensure_ascii=False)}")
|
||
|
||
# 模拟后端处理逻辑
|
||
password3 = data3.get('password', '')
|
||
print(f"提取的密码: '{password3}'")
|
||
print(f"'password'键是否存在: {'password' in data3}")
|
||
print(f"密码是否为空: {not password3}")
|
||
|
||
if 'password' not in data3 or not password3:
|
||
print("❌ 验证失败: 密码不能为空")
|
||
else:
|
||
print("✅ 验证通过")
|
||
|
||
def test_validate_function():
|
||
"""测试验证函数"""
|
||
print("\n=== 测试验证函数 ===")
|
||
app = create_app()
|
||
|
||
with app.app_context():
|
||
# 测试数据验证函数
|
||
data1 = {
|
||
"username": "test_user1",
|
||
"email": "test1@example.com",
|
||
"role": 0,
|
||
"status": 1
|
||
}
|
||
|
||
print("\n测试数据验证函数 - 情况1:")
|
||
is_valid, message = validate_admin_data(data1, is_create=True)
|
||
print(f"数据: {json.dumps(data1, ensure_ascii=False)}")
|
||
print(f"验证结果: {is_valid}, 消息: {message}")
|
||
|
||
data2 = {
|
||
"username": "test_user2",
|
||
"email": "test2@example.com",
|
||
"password": "", # 空密码
|
||
"role": 0,
|
||
"status": 1
|
||
}
|
||
|
||
print("\n测试数据验证函数 - 情况2:")
|
||
is_valid, message = validate_admin_data(data2, is_create=True)
|
||
print(f"数据: {json.dumps(data2, ensure_ascii=False)}")
|
||
print(f"验证结果: {is_valid}, 消息: {message}")
|
||
|
||
data3 = {
|
||
"username": "test_user3",
|
||
"email": "test3@example.com",
|
||
"password": "ValidPass123!", # 有效密码
|
||
"role": 0,
|
||
"status": 1
|
||
}
|
||
|
||
print("\n测试数据验证函数 - 情况3:")
|
||
is_valid, message = validate_admin_data(data3, is_create=True)
|
||
print(f"数据: {json.dumps(data3, ensure_ascii=False)}")
|
||
print(f"验证结果: {is_valid}, 消息: {message}")
|
||
|
||
if __name__ == "__main__":
|
||
test_backend_logic()
|
||
test_validate_function() |