更新
This commit is contained in:
@@ -114,6 +114,39 @@ def _build_service(delay_seconds: int = 60):
|
||||
|
||||
|
||||
class ReplyQueueIntegrationTests(unittest.IsolatedAsyncioTestCase):
|
||||
async def test_kick_response_takes_account_offline_immediately(self):
|
||||
callback = AsyncMock()
|
||||
service, _, _ = _build_service()
|
||||
service.on_session_invalid = callback
|
||||
|
||||
with unittest.mock.patch(
|
||||
"rpa_engine.douyin_im.service.system_logger.record", Mock()
|
||||
):
|
||||
await service._note_session_invalid(
|
||||
"抖音安全网关返回 decision=KICK,当前登录态已失效"
|
||||
)
|
||||
|
||||
self.assertFalse(service._running)
|
||||
self.assertTrue(service._session_invalid_fired)
|
||||
callback.assert_awaited_once()
|
||||
self.assertIn("decision=KICK", callback.await_args.args[0])
|
||||
|
||||
async def test_invalid_request_still_requires_two_consecutive_failures(self):
|
||||
callback = AsyncMock()
|
||||
service, _, _ = _build_service()
|
||||
service.on_session_invalid = callback
|
||||
|
||||
with unittest.mock.patch(
|
||||
"rpa_engine.douyin_im.service.system_logger.record", Mock()
|
||||
):
|
||||
await service._note_session_invalid("INVALID_REQUEST")
|
||||
self.assertTrue(service._running)
|
||||
callback.assert_not_awaited()
|
||||
await service._note_session_invalid("INVALID_REQUEST")
|
||||
|
||||
self.assertFalse(service._running)
|
||||
callback.assert_awaited_once()
|
||||
|
||||
async def test_same_message_from_ws_and_poll_is_queued_once(self):
|
||||
service, match_reply, _ = _build_service()
|
||||
message = {
|
||||
|
||||
Reference in New Issue
Block a user