88 lines
2.7 KiB
Python
88 lines
2.7 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import requests
|
|
import json
|
|
|
|
def final_test():
|
|
"""
|
|
最终测试管理员创建功能
|
|
"""
|
|
base_url = "http://127.0.0.1:5000"
|
|
|
|
# 创建会话以保持cookies
|
|
session = requests.Session()
|
|
|
|
print("=== 最终测试管理员创建功能 ===")
|
|
|
|
# 1. 登录
|
|
print("\n1. 登录...")
|
|
login_data = {
|
|
"username": "admin",
|
|
"password": "admin123"
|
|
}
|
|
|
|
try:
|
|
login_response = session.post(f"{base_url}/login", data=login_data)
|
|
print(f" 登录状态码: {login_response.status_code}")
|
|
print(f" 登录后URL: {login_response.url}")
|
|
|
|
# 检查是否登录成功
|
|
if "/dashboard" in login_response.url or (login_response.status_code == 200 and "dashboard" in login_response.text.lower()):
|
|
print(" ✅ 登录成功")
|
|
else:
|
|
print(" ⚠️ 登录状态不确定")
|
|
except Exception as e:
|
|
print(f" 登录请求失败: {e}")
|
|
return
|
|
|
|
# 2. 测试创建管理员API
|
|
print("\n2. 测试创建管理员API...")
|
|
admin_data = {
|
|
"username": "final_test_user",
|
|
"email": "final_test@example.com",
|
|
"password": "final_test123",
|
|
"role": 0,
|
|
"status": 1
|
|
}
|
|
|
|
print(f" 发送数据: {json.dumps(admin_data, ensure_ascii=False)}")
|
|
|
|
try:
|
|
# 发送POST请求到API端点
|
|
api_response = session.post(
|
|
f"{base_url}/api/v1/admins",
|
|
json=admin_data,
|
|
headers={
|
|
"Content-Type": "application/json"
|
|
}
|
|
)
|
|
|
|
print(f" API状态码: {api_response.status_code}")
|
|
print(f" API响应内容: {api_response.text}")
|
|
|
|
# 尝试解析JSON响应
|
|
try:
|
|
result = api_response.json()
|
|
print(f" 解析结果: {json.dumps(result, ensure_ascii=False, indent=2)}")
|
|
|
|
if api_response.status_code == 200 and result.get('success'):
|
|
print(" ✅ 管理员创建成功!")
|
|
elif api_response.status_code == 400:
|
|
print(" ❌ 400错误 - 请求数据有问题")
|
|
elif api_response.status_code == 401:
|
|
print(" ❌ 401错误 - 需要登录")
|
|
elif api_response.status_code == 403:
|
|
print(" ❌ 403错误 - 权限不足")
|
|
else:
|
|
print(f" ❌ 其他错误: {api_response.status_code}")
|
|
|
|
except Exception as e:
|
|
print(f" 无法解析JSON响应: {e}")
|
|
|
|
except Exception as e:
|
|
print(f" API请求失败: {e}")
|
|
return
|
|
|
|
if __name__ == "__main__":
|
|
final_test() |