93 lines
3.0 KiB
Python
93 lines
3.0 KiB
Python
|
|
#!/usr/bin/env python3
|
|||
|
|
"""
|
|||
|
|
测试新登录逻辑(单枪匹马/组队团战/独当一面)
|
|||
|
|
"""
|
|||
|
|
|
|||
|
|
import requests
|
|||
|
|
|
|||
|
|
API_BASE = 'http://localhost:8000/api/v1'
|
|||
|
|
|
|||
|
|
def test_new_login():
|
|||
|
|
print("="*60)
|
|||
|
|
print("🎯 测试新登录逻辑")
|
|||
|
|
print("="*60)
|
|||
|
|
|
|||
|
|
# 1. 单枪匹马
|
|||
|
|
print("\n🥷 测试 1: 单枪匹马(仅人类)")
|
|||
|
|
res = requests.post(f'{API_BASE}/auth/login/', json={
|
|||
|
|
'username': 'test',
|
|||
|
|
'password': 'test123',
|
|||
|
|
'mode': 'solo'
|
|||
|
|
})
|
|||
|
|
if res.status_code == 200:
|
|||
|
|
data = res.json()
|
|||
|
|
print(f"✅ 登录成功")
|
|||
|
|
print(f" 模式:{data['mode_name']}")
|
|||
|
|
print(f" 会话数:{len(data['sessions'])}")
|
|||
|
|
for s in data['sessions']:
|
|||
|
|
print(f" - {s['session_type']}: {s['nickname']} ({s['emoji']})")
|
|||
|
|
else:
|
|||
|
|
print(f"❌ 登录失败:{res.json()}")
|
|||
|
|
|
|||
|
|
# 2. 组队团战
|
|||
|
|
print("\n🛡️ 测试 2: 组队团战(人类 +2 龙虾)")
|
|||
|
|
res = requests.post(f'{API_BASE}/auth/login/', json={
|
|||
|
|
'username': 'test',
|
|||
|
|
'password': 'test123',
|
|||
|
|
'mode': 'team',
|
|||
|
|
'agent_ids': ['flying_hero', 'lobster_monitor']
|
|||
|
|
})
|
|||
|
|
if res.status_code == 200:
|
|||
|
|
data = res.json()
|
|||
|
|
print(f"✅ 登录成功")
|
|||
|
|
print(f" 模式:{data['mode_name']}")
|
|||
|
|
print(f" 会话数:{len(data['sessions'])}")
|
|||
|
|
for s in data['sessions']:
|
|||
|
|
emoji = s.get('emoji', '🤖')
|
|||
|
|
print(f" - {s['session_type']}: {s['nickname']} ({emoji})")
|
|||
|
|
else:
|
|||
|
|
print(f"❌ 登录失败:{res.json()}")
|
|||
|
|
|
|||
|
|
# 3. 独当一面
|
|||
|
|
print("\n⚔️ 测试 3: 独当一面(仅龙虾)")
|
|||
|
|
res = requests.post(f'{API_BASE}/auth/login/', json={
|
|||
|
|
'username': 'test',
|
|||
|
|
'password': 'test123',
|
|||
|
|
'mode': 'agent_only',
|
|||
|
|
'agent_ids': ['flying_hero']
|
|||
|
|
})
|
|||
|
|
if res.status_code == 200:
|
|||
|
|
data = res.json()
|
|||
|
|
print(f"✅ 登录成功")
|
|||
|
|
print(f" 模式:{data['mode_name']}")
|
|||
|
|
print(f" 会话数:{len(data['sessions'])}")
|
|||
|
|
for s in data['sessions']:
|
|||
|
|
emoji = s.get('emoji', '🤖')
|
|||
|
|
print(f" - {s['session_type']}: {s['nickname']} ({emoji})")
|
|||
|
|
else:
|
|||
|
|
print(f"❌ 登录失败:{res.json()}")
|
|||
|
|
|
|||
|
|
# 4. 错误测试 - 组队但没选龙虾
|
|||
|
|
print("\n❌ 测试 4: 组队但没选龙虾(应该失败)")
|
|||
|
|
res = requests.post(f'{API_BASE}/auth/login/', json={
|
|||
|
|
'username': 'test',
|
|||
|
|
'password': 'test123',
|
|||
|
|
'mode': 'team',
|
|||
|
|
'agent_ids': []
|
|||
|
|
})
|
|||
|
|
if res.status_code == 400:
|
|||
|
|
print(f"✅ 正确失败:{res.json()['error']}")
|
|||
|
|
else:
|
|||
|
|
print(f"❌ 应该失败但成功了:{res.json()}")
|
|||
|
|
|
|||
|
|
print("\n" + "="*60)
|
|||
|
|
print("✅ 新登录逻辑测试完成!")
|
|||
|
|
print("="*60)
|
|||
|
|
print("\n📊 三种模式:")
|
|||
|
|
print("1. 🥷 单枪匹马 - 人类单独出战")
|
|||
|
|
print("2. 🛡️ 组队团战 - 人类 +N 龙虾")
|
|||
|
|
print("3. ⚔️ 独当一面 - 龙虾单独出征")
|
|||
|
|
|
|||
|
|
if __name__ == '__main__':
|
|||
|
|
test_new_login()
|