test_live_t02.py 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. # tests/test_live_t02.py
  2. """[live] T02 删角腾槽 — 逐鹿10区 14492162(2026-09-22 新开,初始无角色)。
  3. 阶段A: 创角A(空列表→101→521)
  4. 阶段B: 创角B(列表[A]→101→521, 槽位填满=2/2)
  5. 阶段C: 创角C(列表[A,B]→101→522槽满→CS102删last=1角色→523→同名重试→521)
  6. 断言: C 以原名创建成功(若删角未生效,重试会再吃522→本地无victim→换随机名,
  7. role_name != C名,测试即失败)
  8. protocol_bot/.venv/bin/python -m pytest tests/test_live_t02.py -m live -v -s
  9. """
  10. import random
  11. import pytest
  12. from apilot.host import Host
  13. pytestmark = pytest.mark.live
  14. ZONE = 14492162
  15. USER, PWD = "longwu988", "Longwu1988"
  16. def _create(zone: int, name: str) -> dict:
  17. h = Host(zone, USER, PWD, state_dir="/tmp/apilot_t02")
  18. h.http_login()
  19. h.boot_lua()
  20. return h.run_create_role(name=name)
  21. def test_t02_delete_role_for_slot():
  22. rnd = str(random.randint(1000, 9999))
  23. name_a, name_b, name_c = f"测A{rnd}", f"测B{rnd}", f"测C{rnd}"
  24. ra = _create(ZONE, name_a)
  25. assert ra["role_name"] == name_a and ra["ticket"]
  26. print(f"[A] {ra['role_name']} 票据={ra['ticket'][:20]}...")
  27. rb = _create(ZONE, name_b)
  28. assert rb["role_name"] == name_b and rb["ticket"]
  29. print(f"[B] {rb['role_name']} 票据={rb['ticket'][:20]}... (槽位应已满)")
  30. rc = _create(ZONE, name_c)
  31. print(f"[C] {rc['role_name']} 票据={rc['ticket'][:20]}...")
  32. assert rc["role_name"] == name_c, (
  33. f"删角腾槽未按预期走原名重试: 期望{name_c}, 实际{rc['role_name']}"
  34. "(说明522后删角失败→换随机名兜底)")
  35. assert rc["ticket"]