Ai_GirlFriend/test_invite_code.py
2026-02-04 18:58:05 +08:00

124 lines
4.1 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
测试邀请码功能
"""
import requests
# 配置
BASE_URL = "http://localhost:30101"
TOKEN_USER1 = "3932cd35-4238-4c3f-ad5c-ad6ce9454e79" # 用户1的 token邀请人
TOKEN_USER2 = "test-token-user2" # 用户2的 token被邀请人需要替换为真实 token
def test_get_invite_info(token):
"""测试获取邀请信息"""
url = f"{BASE_URL}/config/invite/info"
headers = {
"Authorization": f"Bearer {token}"
}
print(f"\n=== 测试获取邀请信息 ===")
print(f"请求 URL: {url}")
response = requests.get(url, headers=headers)
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.json()}")
if response.status_code == 200:
data = response.json()
if data.get("code") == 1:
invite_code = data.get("data", {}).get("invite_code")
print(f"\n✅ 邀请码: {invite_code}")
return invite_code
else:
print(f"\n❌ 获取失败: {data.get('message')}")
else:
print(f"\n❌ HTTP 错误: {response.status_code}")
return None
def test_apply_invite_code(token, invite_code):
"""测试使用邀请码"""
url = f"{BASE_URL}/config/invite/apply"
headers = {
"Authorization": f"Bearer {token}",
"Content-Type": "application/json"
}
data = {
"invite_code": invite_code
}
print(f"\n=== 测试使用邀请码 ===")
print(f"请求 URL: {url}")
print(f"邀请码: {invite_code}")
response = requests.post(url, headers=headers, json=data)
print(f"状态码: {response.status_code}")
print(f"响应内容: {response.json()}")
if response.status_code == 200:
data = response.json()
if data.get("code") == 1:
print(f"\n✅ 使用成功: {data.get('data', {}).get('message')}")
print(f"奖励: {data.get('data', {}).get('reward')} 金币")
print(f"余额: {data.get('data', {}).get('balance')} 金币")
else:
print(f"\n❌ 使用失败: {data.get('message')}")
else:
print(f"\n❌ HTTP 错误: {response.status_code}")
print(f"错误详情: {response.text}")
def test_check_user_info(token):
"""测试检查用户信息"""
url = f"{BASE_URL}/user/basic"
headers = {
"Authorization": f"Bearer {token}"
}
print(f"\n=== 测试获取用户信息 ===")
print(f"请求 URL: {url}")
response = requests.get(url, headers=headers)
print(f"状态码: {response.status_code}")
if response.status_code == 200:
data = response.json()
print(f"响应内容: {data}")
if data.get("code") == 1:
user_data = data.get("data", {})
print(f"\n✅ 用户ID: {user_data.get('user_id')}")
print(f"金币余额: {user_data.get('money')}")
print(f"邀请码: {user_data.get('invite_code')}")
print(f"被邀请码: {user_data.get('invited_by')}")
else:
print(f"\n❌ HTTP 错误: {response.status_code}")
if __name__ == "__main__":
print("=" * 60)
print("邀请码功能测试")
print("=" * 60)
# 测试1获取用户1的邀请码
print("\n【步骤1】获取用户1邀请人的邀请码")
invite_code = test_get_invite_info(TOKEN_USER1)
if invite_code:
print(f"\n【步骤2】用户1的邀请码是: {invite_code}")
print("\n提示:请使用另一个用户的 token 来测试使用邀请码")
print(f"修改脚本中的 TOKEN_USER2 变量,然后取消注释下面的代码")
# 取消注释下面的代码来测试使用邀请码
# print("\n【步骤3】用户2使用邀请码")
# test_apply_invite_code(TOKEN_USER2, invite_code)
# print("\n【步骤4】检查用户1的信息应该增加了邀请计数和奖励")
# test_check_user_info(TOKEN_USER1)
# print("\n【步骤5】检查用户2的信息应该有 invited_by 字段)")
# test_check_user_info(TOKEN_USER2)
print("\n" + "=" * 60)