import asyncio import json from websockets import connect import httpx async def test(): print("=== Test Connect Session ===", flush=True) # Login async with httpx.AsyncClient() as client: r = await client.post('http://localhost:3030/auth/login', json={'username': 'admin', 'password': 'admin'}) token = r.json()['token'] print(f"Got token", flush=True) # Connect and list sessions async with connect('ws://localhost:3030/ws/chat') as ws: await ws.send(json.dumps({'token': token})) init = json.loads(await ws.recv()) print(f"Init: {init.get('type')}", flush=True) sessions = init.get('sessions', []) print(f"Sessions: {len(sessions)}", flush=True) for s in sessions: print(f" - {s['name']} ({s['session_id']})", flush=True) if sessions: sid = sessions[0]['session_id'] print(f"\nConnecting to: {sid}", flush=True) await ws.send(json.dumps({'type': 'connect_session', 'session_id': sid})) result = json.loads(await ws.recv()) print(f"Result: {result}", flush=True) else: print("No sessions to connect to", flush=True) asyncio.run(test())