This commit is contained in:
52
tests/test_websocket.py
Normal file
52
tests/test_websocket.py
Normal file
@@ -0,0 +1,52 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Простой тест WebSocket соединения для Emergency Service
|
||||
"""
|
||||
import asyncio
|
||||
import json
|
||||
import websockets
|
||||
import sys
|
||||
|
||||
async def test_websocket_connection():
|
||||
"""Тест подключения к WebSocket эндпоинту"""
|
||||
|
||||
# Используем фиктивный токен для тестирования
|
||||
test_token = "test_token_123"
|
||||
user_id = "current_user_id"
|
||||
|
||||
uri = f"ws://localhost:8002/api/v1/emergency/ws/{user_id}?token={test_token}"
|
||||
|
||||
print(f"Попытка подключения к: {uri}")
|
||||
|
||||
try:
|
||||
async with websockets.connect(uri) as websocket:
|
||||
print("✅ WebSocket подключение установлено!")
|
||||
|
||||
# Отправляем ping
|
||||
await websocket.send(json.dumps({"type": "ping"}))
|
||||
print("📤 Отправлен ping")
|
||||
|
||||
# Ждем ответ
|
||||
response = await asyncio.wait_for(websocket.recv(), timeout=5.0)
|
||||
print(f"📥 Получен ответ: {response}")
|
||||
|
||||
# Ждем еще немного для других сообщений
|
||||
try:
|
||||
while True:
|
||||
message = await asyncio.wait_for(websocket.recv(), timeout=2.0)
|
||||
print(f"📥 Дополнительное сообщение: {message}")
|
||||
except asyncio.TimeoutError:
|
||||
print("⏱️ Таймаут - больше сообщений нет")
|
||||
|
||||
except websockets.exceptions.ConnectionClosedError as e:
|
||||
if e.code == 1008:
|
||||
print("❌ Подключение отклонено (403 Forbidden) - проблема с аутентификацией")
|
||||
else:
|
||||
print(f"❌ Подключение закрыто с кодом {e.code}: {e}")
|
||||
except ConnectionRefusedError:
|
||||
print("❌ Соединение отклонено - сервер не запущен или порт неправильный")
|
||||
except Exception as e:
|
||||
print(f"❌ Ошибка: {type(e).__name__}: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(test_websocket_connection())
|
||||
Reference in New Issue
Block a user