Files
aitsc/test_auth_function.py
2025-08-29 00:34:40 +08:00

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()