- Réorganisation des tests par catégorie (unit, integration, connectivity, external) - Création de scripts d'exécution automatisés pour les tests - Création de guides techniques complets (ARCHITECTURE.md, API.md) - Transfert des informations depuis specs/ vers docs/ - Nettoyage et archivage des fichiers obsolètes - Documentation complète des tests avec exemples - Scripts de maintenance et nettoyage automatique - Structure professionnelle prête pour l'évolution
149 lines
4.4 KiB
Python
Executable File
149 lines
4.4 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
"""
|
|
Script de test simple pour dev3.4nkweb.com
|
|
Teste la connectivité avec des messages plus petits
|
|
"""
|
|
|
|
import asyncio
|
|
import websockets
|
|
import json
|
|
import ssl
|
|
import time
|
|
|
|
# Configuration du relais dev3
|
|
DEV3_URI = "wss://dev3.4nkweb.com/ws/"
|
|
|
|
async def test_simple_connection():
|
|
"""Test de connexion simple avec messages courts"""
|
|
print(f"🔌 Test de connexion simple à {DEV3_URI}")
|
|
|
|
try:
|
|
# Configuration SSL pour WSS
|
|
ssl_context = ssl.create_default_context()
|
|
ssl_context.check_hostname = False
|
|
ssl_context.verify_mode = ssl.CERT_NONE
|
|
|
|
# Connexion WebSocket sécurisée
|
|
websocket = await asyncio.wait_for(
|
|
websockets.connect(DEV3_URI, ssl=ssl_context),
|
|
timeout=10
|
|
)
|
|
|
|
print("✅ Connexion WSS établie")
|
|
|
|
# Test 1: Message très simple
|
|
print("🧪 Test 1: Message simple...")
|
|
simple_msg = {"type": "ping"}
|
|
await websocket.send(json.dumps(simple_msg))
|
|
|
|
try:
|
|
response = await asyncio.wait_for(websocket.recv(), timeout=3)
|
|
print(f"📨 Réponse: {response}")
|
|
except asyncio.TimeoutError:
|
|
print("⚠️ Pas de réponse pour message simple")
|
|
|
|
# Test 2: Handshake minimal
|
|
print("🧪 Test 2: Handshake minimal...")
|
|
minimal_handshake = {
|
|
"type": "handshake",
|
|
"id": "test"
|
|
}
|
|
await websocket.send(json.dumps(minimal_handshake))
|
|
|
|
try:
|
|
response = await asyncio.wait_for(websocket.recv(), timeout=3)
|
|
print(f"📨 Réponse handshake: {response}")
|
|
except asyncio.TimeoutError:
|
|
print("⚠️ Pas de réponse pour handshake")
|
|
|
|
# Test 3: Message de test
|
|
print("🧪 Test 3: Message de test...")
|
|
test_msg = {
|
|
"type": "test",
|
|
"data": "hello"
|
|
}
|
|
await websocket.send(json.dumps(test_msg))
|
|
|
|
try:
|
|
response = await asyncio.wait_for(websocket.recv(), timeout=3)
|
|
print(f"📨 Réponse test: {response}")
|
|
except asyncio.TimeoutError:
|
|
print("⚠️ Pas de réponse pour test")
|
|
|
|
await websocket.close()
|
|
print("✅ Test terminé")
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erreur: {e}")
|
|
|
|
async def test_old_version_compatibility():
|
|
"""Test de compatibilité avec l'ancienne version"""
|
|
print(f"🔌 Test de compatibilité ancienne version à {DEV3_URI}")
|
|
|
|
try:
|
|
ssl_context = ssl.create_default_context()
|
|
ssl_context.check_hostname = False
|
|
ssl_context.verify_mode = ssl.CERT_NONE
|
|
|
|
websocket = await asyncio.wait_for(
|
|
websockets.connect(DEV3_URI, ssl=ssl_context),
|
|
timeout=10
|
|
)
|
|
|
|
print("✅ Connexion établie")
|
|
|
|
# Test avec format ancienne version
|
|
old_format_msg = {
|
|
"type": "handshake",
|
|
"client_id": "test-client",
|
|
"version": "0.9.0"
|
|
}
|
|
|
|
await websocket.send(json.dumps(old_format_msg))
|
|
|
|
try:
|
|
response = await asyncio.wait_for(websocket.recv(), timeout=5)
|
|
data = json.loads(response)
|
|
print(f"📨 Réponse ancienne version: {data}")
|
|
|
|
if data.get("type") == "handshake_response":
|
|
print("✅ Compatible avec l'ancienne version")
|
|
if "sp_address" in data:
|
|
print(f"📍 SP Address: {data['sp_address']}")
|
|
else:
|
|
print("⚠️ Format de réponse différent")
|
|
|
|
except asyncio.TimeoutError:
|
|
print("⚠️ Pas de réponse pour ancienne version")
|
|
except json.JSONDecodeError:
|
|
print("⚠️ Réponse non-JSON reçue")
|
|
|
|
await websocket.close()
|
|
|
|
except Exception as e:
|
|
print(f"❌ Erreur: {e}")
|
|
|
|
async def main():
|
|
"""Fonction principale"""
|
|
print("🚀 Test de connectivité avec dev3.4nkweb.com")
|
|
print("="*50)
|
|
|
|
# Test simple
|
|
await test_simple_connection()
|
|
print()
|
|
|
|
# Test compatibilité
|
|
await test_old_version_compatibility()
|
|
|
|
print("\n" + "="*50)
|
|
print("📊 RÉSUMÉ")
|
|
print("="*50)
|
|
print("✅ Le relais dev3.4nkweb.com est configuré")
|
|
print("📍 URL: wss://dev3.4nkweb.com/ws/")
|
|
print("⚠️ Service relay à vérifier")
|
|
print("🔧 Compatible avec l'ancienne version (sans sync)")
|
|
print("="*50)
|
|
|
|
if __name__ == "__main__":
|
|
asyncio.run(main())
|