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