145 lines
5.6 KiB
Python
145 lines
5.6 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
||
|
|
"""
|
||
|
|
测试注册登录功能
|
||
|
|
"""
|
||
|
|
from src.flask_prompt_master import create_app, db
|
||
|
|
from src.flask_prompt_master.services.auth_service import AuthService
|
||
|
|
from src.flask_prompt_master.models.models import User
|
||
|
|
|
||
|
|
def test_auth_function():
|
||
|
|
"""测试注册登录功能"""
|
||
|
|
app = create_app()
|
||
|
|
|
||
|
|
with app.app_context():
|
||
|
|
print("=" * 60)
|
||
|
|
print("注册登录功能测试")
|
||
|
|
print("=" * 60)
|
||
|
|
|
||
|
|
try:
|
||
|
|
# 1. 测试用户注册
|
||
|
|
print("📝 测试用户注册...")
|
||
|
|
register_result = AuthService.register(
|
||
|
|
login_name="testuser002",
|
||
|
|
login_pwd="123456",
|
||
|
|
nickname="测试用户",
|
||
|
|
email="test002@example.com",
|
||
|
|
mobile="13800138001",
|
||
|
|
sex=1
|
||
|
|
)
|
||
|
|
|
||
|
|
if register_result['success']:
|
||
|
|
print("✅ 用户注册成功!")
|
||
|
|
print(f" 用户ID: {register_result['user_id']}")
|
||
|
|
print(f" 昵称: {register_result['nickname']}")
|
||
|
|
user_id = register_result['user_id']
|
||
|
|
else:
|
||
|
|
print(f"❌ 用户注册失败: {register_result['message']}")
|
||
|
|
return
|
||
|
|
|
||
|
|
# 2. 测试用户登录
|
||
|
|
print("\n🔐 测试用户登录...")
|
||
|
|
login_result = AuthService.login("testuser002", "123456")
|
||
|
|
|
||
|
|
if login_result['success']:
|
||
|
|
print("✅ 用户登录成功!")
|
||
|
|
user_info = login_result['user']
|
||
|
|
print(f" 用户ID: {user_info['uid']}")
|
||
|
|
print(f" 用户名: {user_info['login_name']}")
|
||
|
|
print(f" 昵称: {user_info['nickname']}")
|
||
|
|
print(f" 邮箱: {user_info['email']}")
|
||
|
|
print(f" 手机: {user_info['mobile']}")
|
||
|
|
else:
|
||
|
|
print(f"❌ 用户登录失败: {login_result['message']}")
|
||
|
|
|
||
|
|
# 3. 测试获取用户信息
|
||
|
|
print("\n👤 测试获取用户信息...")
|
||
|
|
user_info_result = AuthService.get_user_by_id(user_id)
|
||
|
|
|
||
|
|
if user_info_result['success']:
|
||
|
|
print("✅ 获取用户信息成功!")
|
||
|
|
user_info = user_info_result['user']
|
||
|
|
print(f" 用户ID: {user_info['uid']}")
|
||
|
|
print(f" 用户名: {user_info['login_name']}")
|
||
|
|
print(f" 昵称: {user_info['nickname']}")
|
||
|
|
print(f" 状态: {user_info['status']}")
|
||
|
|
print(f" 创建时间: {user_info['created_time']}")
|
||
|
|
else:
|
||
|
|
print(f"❌ 获取用户信息失败: {user_info_result['message']}")
|
||
|
|
|
||
|
|
# 4. 测试更新用户资料
|
||
|
|
print("\n✏️ 测试更新用户资料...")
|
||
|
|
update_result = AuthService.update_profile(
|
||
|
|
user_id,
|
||
|
|
nickname="更新后的昵称",
|
||
|
|
email="newemail@example.com"
|
||
|
|
)
|
||
|
|
|
||
|
|
if update_result['success']:
|
||
|
|
print("✅ 用户资料更新成功!")
|
||
|
|
else:
|
||
|
|
print(f"❌ 用户资料更新失败: {update_result['message']}")
|
||
|
|
|
||
|
|
# 5. 测试修改密码
|
||
|
|
print("\n🔑 测试修改密码...")
|
||
|
|
change_pwd_result = AuthService.change_password(
|
||
|
|
user_id,
|
||
|
|
"123456",
|
||
|
|
"newpassword123"
|
||
|
|
)
|
||
|
|
|
||
|
|
if change_pwd_result['success']:
|
||
|
|
print("✅ 密码修改成功!")
|
||
|
|
|
||
|
|
# 测试新密码登录
|
||
|
|
print("\n🔐 测试新密码登录...")
|
||
|
|
new_login_result = AuthService.login("testuser002", "newpassword123")
|
||
|
|
if new_login_result['success']:
|
||
|
|
print("✅ 新密码登录成功!")
|
||
|
|
else:
|
||
|
|
print(f"❌ 新密码登录失败: {new_login_result['message']}")
|
||
|
|
else:
|
||
|
|
print(f"❌ 密码修改失败: {change_pwd_result['message']}")
|
||
|
|
|
||
|
|
# 6. 测试错误情况
|
||
|
|
print("\n❌ 测试错误情况...")
|
||
|
|
|
||
|
|
# 测试重复注册
|
||
|
|
duplicate_result = AuthService.register(
|
||
|
|
login_name="testuser002",
|
||
|
|
login_pwd="123456",
|
||
|
|
nickname="重复用户"
|
||
|
|
)
|
||
|
|
if not duplicate_result['success']:
|
||
|
|
print("✅ 重复注册被正确阻止")
|
||
|
|
else:
|
||
|
|
print("❌ 重复注册未被阻止")
|
||
|
|
|
||
|
|
# 测试错误密码登录
|
||
|
|
wrong_pwd_result = AuthService.login("testuser002", "wrongpassword")
|
||
|
|
if not wrong_pwd_result['success']:
|
||
|
|
print("✅ 错误密码登录被正确阻止")
|
||
|
|
else:
|
||
|
|
print("❌ 错误密码登录未被阻止")
|
||
|
|
|
||
|
|
# 7. 清理测试数据
|
||
|
|
print("\n🧹 清理测试数据...")
|
||
|
|
test_user = User.query.filter_by(login_name="testuser002").first()
|
||
|
|
if test_user:
|
||
|
|
db.session.delete(test_user)
|
||
|
|
db.session.commit()
|
||
|
|
print("✅ 测试数据清理完成")
|
||
|
|
else:
|
||
|
|
print("❌ 未找到测试用户")
|
||
|
|
|
||
|
|
print("\n" + "=" * 60)
|
||
|
|
print("✅ 注册登录功能测试完成!")
|
||
|
|
print("=" * 60)
|
||
|
|
|
||
|
|
except Exception as e:
|
||
|
|
print(f"❌ 测试过程中出现错误: {str(e)}")
|
||
|
|
db.session.rollback()
|
||
|
|
raise
|
||
|
|
|
||
|
|
if __name__ == '__main__':
|
||
|
|
test_auth_function()
|