#!/usr/bin/env python """ 测试更新用户个人信息(包括手机号、学校、专业) """ import requests import json # API配置 API_BASE_URL = "http://localhost:8000" def test_update_profile(): """测试更新个人信息""" # 1. 先登录获取token print("1. 登录获取token...") login_data = { "username": "superadmin", "password": "Superadmin123!" } response = requests.post( f"{API_BASE_URL}/api/v1/auth/login", json=login_data ) if response.status_code != 200: print(f"登录失败: {response.text}") return token = response.json()["data"]["token"]["access_token"] print(f"登录成功,获取到token") # 2. 获取当前用户信息 print("\n2. 获取当前用户信息...") headers = { "Authorization": f"Bearer {token}" } response = requests.get( f"{API_BASE_URL}/api/v1/users/me", headers=headers ) if response.status_code == 200: user_data = response.json()["data"] print(f"当前用户信息:") print(f" 用户名: {user_data.get('username')}") print(f" 邮箱: {user_data.get('email')}") print(f" 手机号: {user_data.get('phone', '未设置')}") print(f" 学校: {user_data.get('school', '未设置')}") print(f" 专业: {user_data.get('major', '未设置')}") else: print(f"获取用户信息失败: {response.text}") return # 3. 更新用户信息 print("\n3. 更新用户信息(包括手机号、学校、专业)...") update_data = { "phone": "13800138000", "school": "清华大学", "major": "计算机科学与技术", "bio": "这是一个测试用的个人简介" } response = requests.put( f"{API_BASE_URL}/api/v1/users/me", headers=headers, json=update_data ) if response.status_code == 200: print("更新成功!") updated_data = response.json()["data"] print(f"更新后的信息:") print(f" 手机号: {updated_data.get('phone', '未设置')}") print(f" 学校: {updated_data.get('school', '未设置')}") print(f" 专业: {updated_data.get('major', '未设置')}") print(f" 个人简介: {updated_data.get('bio', '未设置')}") else: print(f"更新失败: {response.text}") # 4. 再次获取信息验证 print("\n4. 再次获取用户信息验证更新...") response = requests.get( f"{API_BASE_URL}/api/v1/users/me", headers=headers ) if response.status_code == 200: user_data = response.json()["data"] print(f"验证结果:") print(f" 手机号: {user_data.get('phone', '未设置')}") print(f" 学校: {user_data.get('school', '未设置')}") print(f" 专业: {user_data.get('major', '未设置')}") else: print(f"获取用户信息失败: {response.text}") if __name__ == "__main__": print("测试更新用户个人信息API...") test_update_profile() print("\n测试完成!")