def get_socket(self, sessid=''): """Return an existing or new client Socket.""" socket = self.sockets.get(sessid) if socket is None: socket = Socket(self, self.config) self.sockets[socket.sessid] = socket else: socket.incr_hits() return socket
def get_socket(self, sessid=''): """Return an existing or new client Socket.""" socket = self.sockets.get(sessid) if sessid and not socket: return None # you ask for a session that doesn't exist! if socket is None: socket = Socket(self, self.config) self.sockets[socket.sessid] = socket else: socket.incr_hits() return socket
def get_socket(self, sessid=''): """Return an existing or new client Socket.""" socket = self.sockets.get(sessid) # workaround for https://github.com/abourget/gevent-socketio/issues/132 #if sessid and not socket: # return None # you ask for a session that doesn't exist! if socket is None: socket = Socket(self, self.config) self.sockets[socket.sessid] = socket else: socket.incr_hits() return socket
def get_socket(self, sessid=''): """Return an existing or new client Socket.""" socket = self.sockets.get(sessid) # commenting this two lines fix https://github.com/abourget/gevent-socketio/issues/132 #if sessid and not socket: # return None # you ask for a session that doesn't exist! if socket is None: socket = Socket(self, self.config) self.sockets[socket.sessid] = socket else: socket.incr_hits() return socket
class TestSocketAPI(TestCase): def setUp(self): self.server = MockSocketIOServer() self.virtsocket = Socket(self.server) def test__set_namespaces(self): namespaces = {'test': 'a'} self.virtsocket._set_namespaces(namespaces) self.asserEqual(self.virtsocket.namespaces, namespaces) def test__set_request(self): request = {'test': 'a'} self.virtsocket._set_request(request) self.asserEqual(self.virtsocket.request, request)
def get_socket(self, sessid=''): """Return an existing or new client Socket.""" socket = self.sockets.get(sessid) if socket is None: if sessid: raise Exception('No session id {0} available'.format(sessid)) else: socket = Socket(self) self.sockets[socket.sessid] = socket else: socket.incr_hits() return socket
def get_socket(self, sessid=''): """Return an existing or new client Socket.""" socket = self.sockets.get(sessid) # commenting this two lines fix https://github.com/abourget/gevent-socketio/issues/132 # https://github.com/getpenelope/gevent-socketio/commit/6c80c17705c9a1b3adcb0f99abde1c4d369c337b # if sessid and not socket: # return None # you ask for a session that doesn't exist! if socket is None: socket = Socket(self, self.config) self.sockets[socket.sessid] = socket else: socket.incr_hits() return socket
def get_socket(self, sessid): """Returns a socket if the session exists (i.e. was handshaken) or None. """ socket = self.sockets.get(sessid) if (not socket) and self.is_handshaken(sessid): socket = Socket(sessid, self, self.config) self.sockets[sessid] = socket if socket: socket = self.load_socket(socket) return socket
def webhook(webhook_id, remaining=''): """Webhook callback requests this or when viewing a webhook""" has_data = len(request.args) or request.method != 'GET' or remaining post = formatted_json(request.form) if request.form else scalar_or_list( request.data) get = formatted_json(request.args) headers = formatted_json({k: v for k, v in request.headers.iteritems()}) files = formatted_json({ file_key: file.filename for file_key, file in request.files.iteritems() }) # Play sound effect if url is like http://webhookr.com/aBr3/loud or /loud/something/else/ sound_effect = app.config['VALID_SOUNDS'][0] for sound in app.config['VALID_SOUNDS']: sound_prefix = '{}/'.format(sound) if remaining == sound or remaining.startswith(sound_prefix): sound_effect = sound data = { "method": request.method, "ip": request.remote_addr, "host": request.headers.get('Host'), "length": request.headers.get('Content-Length'), "type": request.headers.get('Content-Type'), "post": post, "get": get, "files": files, "headers": headers, "path": remaining, "hasData": has_data, "soundEffect": sound_effect, } if has_data: # Little hack to communicate to server outside of a websocket request.environ['socketio'] = Socket(server=app.server) wns = WebhookNamespace(request.environ, '/webhooks', request) wns.emit_to_channel(webhook_id, 'new_request', data) return "Message Logged" context = { 'webhook_id': webhook_id, "full_path": url_for('webhook', webhook_id=webhook_id, _external=True) } return render_template('webhooks/webhook.html', **context)
def setUp(self): self.server = MockSocketIOServer() self.virtsocket = Socket(self.server, {})
class TestSocketAPI(TestCase): """Test the virtual Socket object""" def setUp(self): self.server = MockSocketIOServer() self.virtsocket = Socket(self.server, {}) def test__set_namespaces(self): namespaces = {'/': MockNamespace} self.virtsocket._set_namespaces(namespaces) self.assertEqual(self.virtsocket.namespaces, namespaces) def test__set_request(self): request = {'test': 'a'} self.virtsocket._set_request(request) self.assertEqual(self.virtsocket.request, request) def test__set_environ(self): environ = [] self.virtsocket._set_environ(environ) self.assertEqual(self.virtsocket.environ, environ) def test_connected_property(self): # not connected self.assertFalse(self.virtsocket.connected) # connected self.virtsocket.state = "CONNECTED" self.assertTrue(self.virtsocket.connected) def test_incr_hist(self): self.virtsocket.state = "CONNECTED" # cause a hit self.virtsocket.incr_hits() self.assertEqual(self.virtsocket.hits, 1) self.assertEqual(self.virtsocket.state, self.virtsocket.STATE_CONNECTED) def test_disconnect(self): # kill connected socket self.virtsocket.state = "CONNECTED" self.virtsocket.active_ns = { 'test': MockNamespace({'socketio': self.virtsocket}, 'test') } self.virtsocket.disconnect() self.assertEqual(self.virtsocket.state, "DISCONNECTING") self.assertEqual(self.virtsocket.active_ns, {}) def test_kill(self): # kill connected socket self.virtsocket.state = "CONNECTED" self.virtsocket.active_ns = { 'test': MockNamespace({'socketio': self.virtsocket}, 'test') } self.virtsocket.kill() self.assertEqual(self.virtsocket.state, "DISCONNECTING") def test__receiver_loop(self): """Test the loop """ # most of the method is tested by test_packet.TestDecode and # test_namespace.TestBaseNamespace pass
def setUp(self): self.server = MockSocketIOServer() self.virtsocket = Socket(self.server)
class TestSocketAPI(TestCase): """Test the virtual Socket object""" def setUp(self): self.server = MockSocketIOServer() self.virtsocket = Socket(self.server) def test__set_namespaces(self): namespaces = {'/': MockNamespace} self.virtsocket._set_namespaces(namespaces) self.assertEqual(self.virtsocket.namespaces, namespaces) def test__set_request(self): request = {'test': 'a'} self.virtsocket._set_request(request) self.assertEqual(self.virtsocket.request, request) def test__set_environ(self): environ = [] self.virtsocket._set_environ(environ) self.assertEqual(self.virtsocket.environ, environ) def test_connected_property(self): # not connected self.assertFalse(self.virtsocket.connected) # connected self.virtsocket.state = "CONNECTED" self.assertTrue(self.virtsocket.connected) def test_incr_hist(self): self.virtsocket.incr_hits() self.assertEqual(self.virtsocket.hits, 1) self.assertEqual(self.virtsocket.state, self.virtsocket.STATE_CONNECTED) def test_disconnect(self): # kill connected socket self.virtsocket.state = "CONNECTED" self.virtsocket.active_ns = {'test' : MockNamespace(environ=[], name="m")} self.virtsocket.disconnect() self.assertEqual(self.virtsocket.state, "CONNECTED") self.assertEqual(self.virtsocket.active_ns, {}) def test_kill(self): # kill connected socket self.virtsocket.state = "CONNECTED" self.virtsocket.active_ns = {'test' : MockNamespace(environ=[], name="m")} self.virtsocket.kill() self.assertEqual(self.virtsocket.state, "DISCONNECTING") def test__receiver_loop(self): """Test the loop """ # most of the method is tested by test_packet.TestDecode and # test_namespace.TestBaseNamespace pass
def setUp(self): self.server = MockSocketIOServer() sessid = '12345678' self.virtsocket = Socket(sessid, self.server.manager, {})
class TestSocketAPI(TestCase): """Test the virtual Socket object""" def setUp(self): self.server = SocketIOServer() self.virtsocket = Socket(self.server, {}) def test__set_namespaces(self): namespaces = {'/': Namespace} self.virtsocket._set_namespaces(namespaces) self.assertEqual(self.virtsocket.namespaces, namespaces) def test__set_request(self): request = {'test': 'a'} self.virtsocket._set_request(request) self.assertEqual(self.virtsocket.request, request) def test__set_environ(self): environ = [] self.virtsocket._set_environ(environ) self.assertEqual(self.virtsocket.environ, environ) def test_connected_property(self): # not connected self.assertFalse(self.virtsocket.connected) # connected self.virtsocket.state = "CONNECTED" self.assertTrue(self.virtsocket.connected) def test_incr_hist(self): self.virtsocket.state = "CONNECTED" # cause a hit self.virtsocket.incr_hits() self.assertEqual(self.virtsocket.hits, 1) self.assertEqual(self.virtsocket.state, self.virtsocket.STATE_CONNECTED) def test_disconnect(self): # kill connected socket self.virtsocket.state = "CONNECTED" self.virtsocket.active_ns = {'test' : Namespace({'socketio': self.virtsocket}, 'test')} self.virtsocket.disconnect() self.assertEqual(self.virtsocket.state, "DISCONNECTING") self.assertEqual(self.virtsocket.active_ns, {}) def test_kill(self): # kill connected socket self.virtsocket.state = "CONNECTED" self.virtsocket.active_ns = {'test' : Namespace({'socketio': self.virtsocket}, 'test')} self.virtsocket.kill() self.assertEqual(self.virtsocket.state, "DISCONNECTING")