test_host_unit.py 1.2 KB

12345678910111213141516171819202122232425262728
  1. # tests/test_host_unit.py
  2. """Task 7: host.py — 登录链拼包纯函数(零真实网络)。"""
  3. import json
  4. from apilot.host import Host
  5. def test_login_2001_body_shape(tmp_path):
  6. """2001 body = b"uid/" + encode6(jwt) + b"/" + encode6(channel) + b"/1/0"。
  7. 与 cq2_pure_enter.login_gate() 第 124-125 行 逐字节一致。"""
  8. h = Host(14481607, "longwu988", "Longwu1988", state_dir=str(tmp_path))
  9. uid, jwt = "1186115037", "eyJfake.jwt.token"
  10. body = h.build_2001_body(uid, jwt)
  11. import sys
  12. sys.path.insert(0, "protocol_bot")
  13. from encode6bitbuf_final import encode6 # type: ignore
  14. assert body == f"{uid}/".encode() + encode6(jwt.encode()) + b"/" + encode6(b"110585") + b"/1/0"
  15. def test_create_role_101_body(tmp_path):
  16. """101 body = {"server_name":zone,"chr":name,"secsdk":"0","job":0,"sex":0,
  17. "account":uid,"sdkid":"110585"};中文/账号/区号全保留。"""
  18. h = Host(14481607, "u", "p", state_dir=str(tmp_path))
  19. body = json.loads(h.build_101_body("萌新1234", uid="u1", job=0, sex=0))
  20. assert body["chr"] == "萌新1234" and body["sdkid"] == "110585"
  21. assert body["server_name"] == 14481607
  22. assert body["account"] == "u1" and body["job"] == 0 and body["sex"] == 0
  23. assert body["secsdk"] == "0"