test_14_room_live.py 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. """群管理模块 — 真实联调(QIWEI_ROOM_IDS / API-07/08/09)"""
  2. import time
  3. import pytest
  4. pytestmark = [pytest.mark.integration, pytest.mark.qiwei_live]
  5. def test_live_sync_by_room_ids(api, live_guid, live_room_ids, live_rooms_seeded):
  6. """POST /rooms/sync + roomIdList,从 .env QIWEI_ROOM_IDS 登记群"""
  7. data = api.assert_success(
  8. api.post(
  9. "/rooms/sync",
  10. json={
  11. "guid": live_guid,
  12. "roomIdList": live_room_ids,
  13. },
  14. )
  15. )
  16. assert data["roomCount"] == len(live_room_ids)
  17. synced_ids = {r["roomId"] for r in data["rooms"]}
  18. assert synced_ids == set(live_rooms_seeded)
  19. def test_live_rooms_list_all_configured(api, live_room_ids, live_rooms_seeded):
  20. rooms = api.assert_success(api.get("/rooms"))
  21. listed = {r["roomId"] for r in rooms}
  22. for rid in live_room_ids:
  23. assert rid in listed
  24. def test_live_room_detail_each(api, live_room_ids, live_rooms_seeded):
  25. for room_id in live_room_ids:
  26. room = api.assert_success(api.get(f"/rooms/{room_id}"))
  27. assert room["roomId"] == room_id
  28. assert room.get("roomName")
  29. def test_live_room_health_each(api, live_room_ids, live_rooms_seeded):
  30. for room_id in live_room_ids:
  31. health = api.assert_success(api.get(f"/rooms/{room_id}/health"))
  32. assert health["roomId"] == room_id
  33. assert "healthScore" in health
  34. def test_live_member_events_sync_each(api, live_guid, live_room_ids, live_rooms_seeded):
  35. """API-09 /room/getRoomIncrSync"""
  36. for room_id in live_room_ids:
  37. data = api.assert_success(
  38. api.post(
  39. "/rooms/member-events/sync",
  40. json={"guid": live_guid, "roomId": room_id, "ver": 0},
  41. )
  42. )
  43. assert "events" in data
  44. assert "nextVer" in data
  45. def test_live_proxy_batch_room_detail_all(api, live_guid, live_room_ids):
  46. data = api.assert_success(
  47. api.post(
  48. "/qiwei/proxy",
  49. json={
  50. "method": "/room/batchGetRoomDetail",
  51. "params": {"guid": live_guid, "roomIdList": live_room_ids},
  52. },
  53. )
  54. )
  55. assert isinstance(data.get("roomList"), list)
  56. assert len(data["roomList"]) >= 1
  57. def test_live_get_room_list_may_be_empty(api, live_guid):
  58. """getRoomList 可为空;与 QIWEI_ROOM_IDS 联调不冲突"""
  59. data = api.assert_success(
  60. api.post(
  61. "/qiwei/proxy",
  62. json={
  63. "method": "/room/getRoomList",
  64. "params": {"guid": live_guid, "nextStartIndex": 0},
  65. },
  66. )
  67. )
  68. assert "roomList" in data