| 结果 | 用例 | 耗时 |
|---|---|---|
| failed |
test_friend_apply_and_accept
tests/api/test_friend.py::test_friend_apply_and_accept
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_friend_apply_rejects_self
tests/api/test_friend.py::test_friend_apply_rejects_self
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.08s |
| failed |
test_friend_apply_requires_vercode
tests/api/test_friend.py::test_friend_apply_requires_vercode
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_create_list_members_and_disband
tests/api/test_group.py::test_create_list_members_and_disband
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_group_create_requires_members
tests/api/test_group.py::test_group_create_requires_members
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_conversation_detail_requires_channel
tests/api/test_im_chat.py::test_conversation_detail_requires_channel
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_conversation_list
tests/api/test_im_chat.py::test_conversation_list
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_group_chat_send_and_history
tests/api/test_im_chat.py::test_group_chat_send_and_history
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_private_chat_send_and_history
tests/api/test_im_chat.py::test_private_chat_send_and_history
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_typing_requires_channel
tests/api/test_im_chat.py::test_typing_requires_channel
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_login_success_returns_token
tests/api/test_login.py::test_login_success_returns_token
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_login_then_user_info
tests/api/test_login.py::test_login_then_user_info
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_duplicate_register_rejected
tests/api/test_register.py::test_duplicate_register_rejected
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_register_check_and_challenge_then_register
tests/api/test_register.py::test_register_check_and_challenge_then_register
tests/api/test_register.py:44: in test_register_check_and_challenge_then_register
assert check.code == SUCCESS
E AssertionError: assert 10097 == 200
E + where 10097 = ApiResponse(http_status=200, code=10097, msg='查询用户信息失败', data=None, elapsed_ms=1.231641996128019, raw={'code': 10097, ...': '***'}, http_status=200, response_body={'code': '***', 'msg': '查询用户信息失败', 'data': None}, elapsed_ms=1.23, error='')).code
HTTP 1 次
POST
/api/v1/user/register/check
HTTP 200
1.23 ms
请求{
"account": "tb6e61c1d3",
"auth_code": "***",
"code": "***",
"type": 2
}
响应{
"code": "***",
"data": null,
"msg": "\u67e5\u8be2\u7528\u6237\u4fe1\u606f\u5931\u8d25"
}
|
0.00s |
| failed |
test_register_rejects_short_password
tests/api/test_register.py::test_register_rejects_short_password
tests/api/test_register.py:35: in test_register_rejects_short_password
assert resp.code == PARAM_ERROR
E AssertionError: assert 10301 == 10001
E + where 10301 = ApiResponse(http_status=200, code=10301, msg='人机验证失败', data=None, elapsed_ms=2.753045002464205, raw={'code': 10301, 'm...er': 'ok'}}, http_status=200, response_body={'code': '***', 'msg': '人机验证失败', 'data': None}, elapsed_ms=2.75, error='')).code
HTTP 2 次
POST
/api/v1/user/registration-challenge
HTTP 200
3.26 ms
请求{
"account": "tb5930736d",
"device_id": "testbot-device-001",
"operation_id": "82340552-f95e-4ea4-9445-ce249c95216a"
}
响应{
"code": "***",
"data": {
"challenge_id": "d8df4233-cc1a-4d90-8ff9-a54a9f580969",
"expires_at": "2026-09-14T11:28:32Z",
"image_base64": "iVBORw0KGgoAAAANSUhEUgAAAEgAAAAYCAIAAADWASznAAAAfElEQVR4nOyVQQqFMAxEfz69/5XHhZssGlBqMb7krSLI0KGZzpD0I/J/+wC7aGNfY/gPMzsHSdGc+X8P9sawxoz63IcZWxG9kpkd+h7sKmKN1ctYhl7qHpuANVYjYxFP9dJdnZXew64i1liNjGXrpe6xCVhj2IwdAQAA///vhJkmP1pjuAAAAABJRU5ErkJggg==",
"kind": "IMAGE",
"mime_type": "image/png"
},
"msg": "\u6210\u529f"
}
POST
/api/v1/user/username/register
HTTP 200
2.75 ms
请求{
"account": "tb5930736d",
"confirmation": "***",
"device": {
"channel": "testbot",
"device_id": "testbot-device-001",
"device_model": "pytest",
"device_name": "SuperIM-TestBot",
"mobile_device_type": 1
},
"flag": 0,
"gender": 1,
"human_verification": {
"answer": "ok",
"challenge_id": "d8df4233-cc1a-4d90-8ff9-a54a9f580969"
},
"nickname": "Bot5930",
"operation_id": "934f474d-6045-4084-9f3b-2e32a1b87269",
"password": "***",
"profile": {
"display_name": "Bot5930",
"gender": 1
},
"username": "tb5930736d"
}
响应{
"code": "***",
"data": null,
"msg": "\u4eba\u673a\u9a8c\u8bc1\u5931\u8d25"
}
|
0.01s |
| failed |
test_search_by_username
tests/api/test_user.py::test_search_by_username
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| failed |
test_search_self_by_uid
tests/api/test_user.py::test_search_self_by_uid
tests/conftest.py:54: in primary
return login_account(api_client.clone(), settings.primary)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
src/testbot/session.py:36: in login_account
raise AssertionError(f"登录失败 {account.username}: code={resp.code} msg={resp.msg}")
E AssertionError: 登录失败 testbota: code=206 msg=账号或密码错误,请重试
|
0.00s |
| passed |
test_group_list_without_auth_fails
tests/api/test_group.py::test_group_list_without_auth_fails
HTTP 1 次
GET
/api/v1/group/list
HTTP 200
1.74 ms
请求null 响应{
"code": "***",
"msg": "token\u5931\u6548,\u8bf7\u91cd\u65b0\u767b\u5f55\uff01"
}
|
0.01s |
| passed |
test_common_config
tests/api/test_health.py::test_common_config
HTTP 1 次
GET
/api/v1/common/config
HTTP 200
1.3 ms
请求null 响应{
"code": "***",
"data": null,
"msg": "\u6210\u529f"
}
|
0.00s |
| passed |
test_health_live
tests/api/test_health.py::test_health_live
HTTP 1 次
GET
/health/live
HTTP 200
1.29 ms
请求null 响应{
"status": "alive"
}
|
0.00s |
| passed |
test_health_ready
tests/api/test_health.py::test_health_ready
HTTP 1 次
GET
/health/ready
HTTP 200
0.99 ms
请求null 响应{
"checks": {
"mysql": "up",
"redis": "up"
},
"status": "ready"
}
|
0.00s |
| passed |
test_login_empty_username
tests/api/test_login.py::test_login_empty_username
HTTP 1 次
POST
/api/v1/user/login
HTTP 200
1.26 ms
请求{
"device": {
"channel": "testbot",
"device_id": "testbot-device-001",
"device_model": "pytest",
"device_name": "SuperIM-TestBot",
"mobile_device_type": 1
},
"flag": 0,
"operation_id": "37e4ca10-4b80-4b10-9e99-128503a464fe",
"password": "***",
"username": ""
}
响应{
"code": "***",
"data": null,
"msg": "\u7528\u6237\u540d\u4e0d\u80fd\u4e3a\u7a7a\uff01"
}
|
0.00s |
| passed |
test_login_wrong_password
tests/api/test_login.py::test_login_wrong_password
HTTP 1 次
POST
/api/v1/user/login
HTTP 200
3.92 ms
请求{
"device": {
"channel": "testbot",
"device_id": "testbot-device-001",
"device_model": "pytest",
"device_name": "SuperIM-TestBot",
"mobile_device_type": 1
},
"flag": 0,
"operation_id": "1e1ecc7b-8911-43ac-be45-9bad95ff867a",
"password": "***",
"username": "testbota"
}
响应{
"code": "***",
"data": null,
"msg": "\u8d26\u53f7\u6216\u5bc6\u7801\u9519\u8bef\uff0c\u8bf7\u91cd\u8bd5"
}
|
0.00s |
| passed |
test_protected_endpoint_requires_token
tests/api/test_login.py::test_protected_endpoint_requires_token
HTTP 1 次
GET
/api/v1/user/info
HTTP 200
1.93 ms
请求null 响应{
"code": "***",
"msg": "token\u5931\u6548,\u8bf7\u91cd\u65b0\u767b\u5f55\uff01"
}
|
0.01s |
| passed |
test_register_check_rejects_short_username
tests/api/test_register.py::test_register_check_rejects_short_username
HTTP 1 次
POST
/api/v1/user/register/check
HTTP 200
1.03 ms
请求{
"account": "ab",
"auth_code": "***",
"code": "***",
"type": 2
}
响应{
"code": "***",
"data": null,
"msg": "\u8d26\u53f7\u5fc5\u987b\u662f\u957f\u5ea64-15\u4f4d\u5b57\u6bcd\u6570\u5b57\u7ec4\u5408"
}
|
0.00s |
| passed |
test_register_rejects_empty_username
tests/api/test_register.py::test_register_rejects_empty_username
HTTP 1 次
POST
/api/v1/user/username/register
HTTP 200
1.07 ms
请求{
"account": "",
"confirmation": "***",
"device": {
"channel": "testbot",
"device_id": "testbot-device-001",
"device_model": "pytest",
"device_name": "SuperIM-TestBot",
"mobile_device_type": 1
},
"flag": 0,
"gender": 1,
"human_verification": {
"answer": "ok",
"challenge_id": "x"
},
"nickname": "Nick",
"operation_id": "9d2358b4-b331-4781-8f63-229418419e8a",
"password": "***",
"profile": {
"display_name": "Nick",
"gender": 1
},
"username": ""
}
响应{
"code": "***",
"data": null,
"msg": "\u53c2\u6570\u9519\u8bef"
}
|
0.00s |