Merge pull request 'fix(avatar): 部署重启后自动恢复 BOXIM 接管' (#6) from codex/avatar-takeover-restart-safe-20260826 into main
Reviewed-on: #6
This commit was merged in pull request #6.
This commit is contained in:
@@ -291,5 +291,41 @@ async def test_connection_failure_disables_takeover_and_stops_retrying(service_c
|
||||
boxim.exchange_access_token.assert_awaited_once_with("prod-huihui-token")
|
||||
|
||||
|
||||
@pytest.mark.asyncio
|
||||
async def test_transient_connection_failure_keeps_takeover_and_recovers(service_context):
|
||||
session_factory, service, boxim, _ = service_context
|
||||
boxim.exchange_access_token = AsyncMock(
|
||||
side_effect=[
|
||||
BoxIMError("连接超时"),
|
||||
{"accessToken": "box-token", "accessTokenExpiresIn": 3600},
|
||||
]
|
||||
)
|
||||
|
||||
await service.poll_messages()
|
||||
|
||||
db = session_factory()
|
||||
try:
|
||||
avatar = db.query(Avatar).one()
|
||||
cursor = db.query(TakeoverCursor).one()
|
||||
assert "takeover" in avatar.config["authorizationPermissions"]
|
||||
assert cursor.initialized is False
|
||||
assert "暂时连接失败" in cursor.last_error
|
||||
finally:
|
||||
db.close()
|
||||
|
||||
await service.poll_messages()
|
||||
|
||||
db = session_factory()
|
||||
try:
|
||||
avatar = db.query(Avatar).one()
|
||||
cursor = db.query(TakeoverCursor).one()
|
||||
assert "takeover" in avatar.config["authorizationPermissions"]
|
||||
assert cursor.initialized is True
|
||||
assert cursor.last_error == ""
|
||||
finally:
|
||||
db.close()
|
||||
assert boxim.exchange_access_token.await_count == 2
|
||||
|
||||
|
||||
def test_plain_text_reply_removes_markdown_and_empty_lines():
|
||||
assert _plain_text_reply("## 建议\n\n**不能自行用药**\n`必要时就医`") == "建议\n不能自行用药\n必要时就医"
|
||||
|
||||
Reference in New Issue
Block a user