Skip to content

Commit 0c91e92

Browse files
v5 protocol: client unit tests
1 parent a4cc0b2 commit 0c91e92

File tree

4 files changed

+259
-239
lines changed

4 files changed

+259
-239
lines changed

socketio/asyncio_client.py

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -96,8 +96,10 @@ async def connect(self, url, headers={}, transports=None,
9696
self.socketio_path = socketio_path
9797

9898
if namespaces is None:
99-
namespaces = set(self.handlers.keys()).union(
100-
set(self.namespace_handlers.keys()))
99+
namespaces = list(set(self.handlers.keys()).union(
100+
set(self.namespace_handlers.keys())))
101+
if len(namespaces) == 0:
102+
namespaces = ['/']
101103
elif isinstance(namespaces, six.string_types):
102104
namespaces = [namespaces]
103105
self.connection_namespaces = namespaces
@@ -293,10 +295,10 @@ async def _send_packet(self, pkt):
293295

294296
async def _handle_connect(self, namespace, data):
295297
namespace = namespace or '/'
296-
self.logger.info('Namespace {} is connected'.format(namespace))
297298
if namespace not in self.namespaces:
299+
self.logger.info('Namespace {} is connected'.format(namespace))
298300
self.namespaces[namespace] = (data or {}).get('sid', self.sid)
299-
await self._trigger_event('connect', namespace=namespace)
301+
await self._trigger_event('connect', namespace=namespace)
300302

301303
async def _handle_disconnect(self, namespace):
302304
if not self.connected:
@@ -306,6 +308,7 @@ async def _handle_disconnect(self, namespace):
306308
if namespace in self.namespaces:
307309
del self.namespaces[namespace]
308310
if not self.namespaces:
311+
self.connected = False
309312
await self.eio.disconnect(abort=True)
310313

311314
async def _handle_event(self, namespace, id, data):
@@ -351,7 +354,7 @@ async def _handle_error(self, namespace, data):
351354
data = (data,)
352355
await self._trigger_event('connect_error', namespace, *data)
353356
if namespace in self.namespaces:
354-
self.namespaces.remove(namespace)
357+
del self.namespaces[namespace]
355358
if namespace == '/':
356359
self.namespaces = {}
357360
self.connected = False

socketio/client.py

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,7 @@ def __init__(self, reconnection=True, reconnection_attempts=0,
108108
self.logger = logger
109109
else:
110110
self.logger = default_logger
111-
if not logging.root.handlers and \
112-
self.logger.level == logging.NOTSET:
111+
if self.logger.level == logging.NOTSET:
113112
if logger:
114113
self.logger.setLevel(logging.INFO)
115114
else:
@@ -119,7 +118,7 @@ def __init__(self, reconnection=True, reconnection_attempts=0,
119118
self.connection_url = None
120119
self.connection_headers = None
121120
self.connection_transports = None
122-
self.connection_namespaces = None
121+
self.connection_namespaces = []
123122
self.socketio_path = None
124123
self.sid = None
125124

@@ -265,8 +264,10 @@ def connect(self, url, headers={}, transports=None,
265264
self.socketio_path = socketio_path
266265

267266
if namespaces is None:
268-
namespaces = set(self.handlers.keys()).union(
269-
set(self.namespace_handlers.keys()))
267+
namespaces = list(set(self.handlers.keys()).union(
268+
set(self.namespace_handlers.keys())))
269+
if len(namespaces) == 0:
270+
namespaces = ['/']
270271
elif isinstance(namespaces, six.string_types):
271272
namespaces = [namespaces]
272273
self.connection_namespaces = namespaces
@@ -476,10 +477,10 @@ def _generate_ack_id(self, namespace, callback):
476477

477478
def _handle_connect(self, namespace, data):
478479
namespace = namespace or '/'
479-
self.logger.info('Namespace {} is connected'.format(namespace))
480480
if namespace not in self.namespaces:
481+
self.logger.info('Namespace {} is connected'.format(namespace))
481482
self.namespaces[namespace] = (data or {}).get('sid', self.sid)
482-
self._trigger_event('connect', namespace=namespace)
483+
self._trigger_event('connect', namespace=namespace)
483484

484485
def _handle_disconnect(self, namespace):
485486
if not self.connected:
@@ -489,6 +490,7 @@ def _handle_disconnect(self, namespace):
489490
if namespace in self.namespaces:
490491
del self.namespaces[namespace]
491492
if not self.namespaces:
493+
self.connected = False
492494
self.eio.disconnect(abort=True)
493495

494496
def _handle_event(self, namespace, id, data):

0 commit comments

Comments
 (0)