Test README commands

This commit is contained in:
Roy Hyunjin Han 2015-02-23 09:39:29 -05:00
commit 444386f271
5 changed files with 27 additions and 11 deletions

View file

@ -42,6 +42,7 @@ Launch your socket.io server. ::
For debugging information, run these commands first. :: For debugging information, run these commands first. ::
import logging import logging
logging.getLogger('requests').setLevel(logging.WARNING)
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
Emit. :: Emit. ::
@ -144,7 +145,7 @@ Wait forever. ::
from socketIO_client import SocketIO from socketIO_client import SocketIO
socketIO = SocketIO('localhost') socketIO = SocketIO('localhost', 8000)
socketIO.wait() socketIO.wait()

View file

@ -1,8 +1,11 @@
Release 0.6.1 #41 #52 Release 0.6.1 #41 #52
Run README commands Run README commands
Fix for Python 3
Merge sarietta's pull request Merge sarietta's pull request
Add Websocket transport Add Websocket transport
Update proxy to include websocket depending on argument Update proxy to include websocket depending on argument
Use prepared request to get headers from http_session
Include https://github.com/invisibleroads/socketIO-client/issues/68
Consider logging packets sent and received Consider logging packets sent and received
Implement rooms #65 Implement rooms #65
Implement binary event Implement binary event

View file

@ -45,6 +45,7 @@ class EngineIO(LoggingMixin):
self._opened = False self._opened = False
if Namespace: if Namespace:
self.define(Namespace) self.define(Namespace)
self._transport
# Connect # Connect
@ -149,6 +150,7 @@ class EngineIO(LoggingMixin):
def _close(self): def _close(self):
self._wants_to_close = True self._wants_to_close = True
self._heartbeat_thread.stop()
if not self._opened: if not self._opened:
return return
engineIO_packet_type = 1 engineIO_packet_type = 1
@ -169,6 +171,7 @@ class EngineIO(LoggingMixin):
def _message(self, engineIO_packet_data): def _message(self, engineIO_packet_data):
engineIO_packet_type = 4 engineIO_packet_type = 4
self._transport.send_packet(engineIO_packet_type, engineIO_packet_data) self._transport.send_packet(engineIO_packet_type, engineIO_packet_data)
self._debug('[socket.io packet sent] %s', engineIO_packet_data)
@retry @retry
def _upgrade(self): def _upgrade(self):
@ -292,6 +295,10 @@ class SocketIO(EngineIO):
# Connect # Connect
@property
def connected(self):
return self._opened
def _connect_namespaces(self): def _connect_namespaces(self):
for path, namespace in self._namespace_by_path.items(): for path, namespace in self._namespace_by_path.items():
namespace._transport = self._transport_instance namespace._transport = self._transport_instance
@ -387,6 +394,7 @@ class SocketIO(EngineIO):
engineIO_packet_data = super(SocketIO, self)._process_packet(packet) engineIO_packet_data = super(SocketIO, self)._process_packet(packet)
if engineIO_packet_data is None: if engineIO_packet_data is None:
return return
self._debug('[socket.io packet received] %s', engineIO_packet_data)
socketIO_packet_type = int(get_character(engineIO_packet_data, 0)) socketIO_packet_type = int(get_character(engineIO_packet_data, 0))
socketIO_packet_data = engineIO_packet_data[1:] socketIO_packet_data = engineIO_packet_data[1:]
# Launch callbacks # Launch callbacks

View file

@ -149,15 +149,15 @@ class LoggingEngineIONamespace(EngineIONamespace):
super(LoggingEngineIONamespace, self).on_close() super(LoggingEngineIONamespace, self).on_close()
def on_ping(self, data): def on_ping(self, data):
self._debug('[ping] %s' % data) self._debug('[ping] %s', data)
super(LoggingEngineIONamespace, self).on_ping(data) super(LoggingEngineIONamespace, self).on_ping(data)
def on_pong(self, data): def on_pong(self, data):
self._debug('[pong] %s' % data) self._debug('[pong] %s', data)
super(LoggingEngineIONamespace, self).on_pong(data) super(LoggingEngineIONamespace, self).on_pong(data)
def on_message(self, data): def on_message(self, data):
self._debug('[message] %s' % data) self._debug('[message] %s', data)
super(LoggingEngineIONamespace, self).on_message(data) super(LoggingEngineIONamespace, self).on_message(data)
def on_upgrade(self): def on_upgrade(self):
@ -180,15 +180,15 @@ class LoggingEngineIONamespace(EngineIONamespace):
class LoggingSocketIONamespace(SocketIONamespace): class LoggingSocketIONamespace(SocketIONamespace):
def on_connect(self): def on_connect(self):
self._debug('%s [connect]' % self.path) self._debug('%s[connect]', _make_logging_header(self.path))
super(LoggingSocketIONamespace, self).on_connect() super(LoggingSocketIONamespace, self).on_connect()
def on_reconnect(self): def on_reconnect(self):
self._debug('%s [reconnect]' % self.path) self._debug('%s[reconnect]', _make_logging_header(self.path))
super(LoggingSocketIONamespace, self).on_reconnect() super(LoggingSocketIONamespace, self).on_reconnect()
def on_disconnect(self): def on_disconnect(self):
self._debug('%s [disconnect]' % self.path) self._debug('%s[disconnect]', _make_logging_header(self.path))
super(LoggingSocketIONamespace, self).on_disconnect() super(LoggingSocketIONamespace, self).on_disconnect()
def on_event(self, event, *args): def on_event(self, event, *args):
@ -196,11 +196,13 @@ class LoggingSocketIONamespace(SocketIONamespace):
arguments = [repr(_) for _ in args] arguments = [repr(_) for _ in args]
if callback: if callback:
arguments.append('callback(*args)') arguments.append('callback(*args)')
self._info('%s [event] %s(%s)', self.path, event, ', '.join(arguments)) self._info(
'%s[event] %s(%s)', _make_logging_header(self.path), event,
', '.join(arguments))
super(LoggingSocketIONamespace, self).on_event(event, *args) super(LoggingSocketIONamespace, self).on_event(event, *args)
def on_error(self, data): def on_error(self, data):
self._debug('%s [error] %s' % (self.path, data)) self._debug('%s[error] %s', _make_logging_header(self.path), data)
super(LoggingSocketIONamespace, self).on_error() super(LoggingSocketIONamespace, self).on_error()
@ -212,3 +214,7 @@ def find_callback(args, kw=None):
return kw['callback'], args return kw['callback'], args
except (KeyError, TypeError): except (KeyError, TypeError):
return None, args return None, args
def _make_logging_header(path):
return path + ' ' if path else ''

View file

@ -24,14 +24,12 @@ class BaseMixin(object):
def test_disconnect(self): def test_disconnect(self):
'Disconnect' 'Disconnect'
self.socketIO.emit('whee')
self.assertTrue(self.socketIO.connected) self.assertTrue(self.socketIO.connected)
self.socketIO.disconnect() self.socketIO.disconnect()
self.assertFalse(self.socketIO.connected) self.assertFalse(self.socketIO.connected)
# Use context manager # Use context manager
with SocketIO(HOST, PORT, Namespace) as self.socketIO: with SocketIO(HOST, PORT, Namespace) as self.socketIO:
namespace = self.socketIO.get_namespace() namespace = self.socketIO.get_namespace()
namespace.emit('whee')
self.assertFalse(namespace.called_on_disconnect) self.assertFalse(namespace.called_on_disconnect)
self.assertTrue(self.socketIO.connected) self.assertTrue(self.socketIO.connected)
self.assertTrue(namespace.called_on_disconnect) self.assertTrue(namespace.called_on_disconnect)