fix: 修复打个招呼的bug

This commit is contained in:
yangshilin
2026-03-13 14:50:04 +08:00
parent 2eb066dbec
commit ab4fb46c0d
4 changed files with 55 additions and 28 deletions

View File

@@ -99,6 +99,7 @@ class _FakeManager:
)
self.conversation_agent = SimpleNamespace(
generate_profile_greeting=AsyncMock(return_value=[]),
generate_opening_message=AsyncMock(return_value=[]),
)
async def connect(self, websocket, conversation_id):
@@ -147,6 +148,15 @@ def _db_provider(db):
return _provider
def _redis_empty_history_patch():
"""Patch redis to return empty history so websocket sends opening (or skips if mocked)."""
return patch.object(
ws_router.redis_service,
"get_conversation_history",
new=AsyncMock(return_value=[]),
)
class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
async def test_invalid_token_closes_connection(self):
websocket = _FakeWebSocket(messages=[], token="invalid")
@@ -183,6 +193,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -235,6 +246,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -296,6 +308,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch.object(ws_router, "process_user_message", process_user_message_mock)
)
@@ -339,6 +352,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch.object(
ws_router,
@@ -383,6 +397,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch.object(ws_router.asr_service, "transcribe", transcribe_mock)
)
@@ -428,6 +443,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -503,6 +519,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -579,6 +596,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -652,6 +670,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -714,6 +733,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -775,6 +795,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -848,6 +869,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)
@@ -927,6 +949,7 @@ class WebSocketBaselineTest(unittest.IsolatedAsyncioTestCase):
patch.object(ws_router, "get_async_db", _db_provider(fake_db))
)
stack.enter_context(patch.object(ws_router, "manager", fake_manager))
stack.enter_context(_redis_empty_history_patch())
stack.enter_context(
patch("routers.quota.get_segment_count", new=AsyncMock(return_value=0))
)