def test_stores_instance_list(self, fake_environ): clients = [ websocket.WebSocket(mock.sentinel.sock1, environ=fake_environ), websocket.WebSocket(mock.sentinel.sock2, environ=fake_environ), ] for c in clients: assert c in websocket.WebSocket.instances
def test_websocket_stores_instance_list(fake_environ): socket = mock.Mock() clients = [ websocket.WebSocket(socket, environ=fake_environ), websocket.WebSocket(socket, environ=fake_environ) ] for c in clients: assert c in websocket.WebSocket.instances
def test_removes_self_from_instance_list_when_closed(self, fake_environ): client1 = websocket.WebSocket(mock.sentinel.sock1, environ=fake_environ) client2 = websocket.WebSocket(mock.sentinel.sock2, environ=fake_environ) assert len(websocket.WebSocket.instances) == 2 client1.closed(1000) assert client1 not in websocket.WebSocket.instances client2.closed(1000) assert client2 not in websocket.WebSocket.instances # A second closure (however unusual) should not raise client1.closed(1000)
def test_websocket_removes_self_from_instance_list_when_closed(): socket = mock.Mock() client1 = websocket.WebSocket(socket) client2 = websocket.WebSocket(socket) assert len(websocket.WebSocket.instances) == 2 client1.closed(1000) assert client1 not in websocket.WebSocket.instances client2.closed(1000) assert client2 not in websocket.WebSocket.instances # A second closure (however unusual) should not raise client1.closed(1000)
def test_socket_send_json_skips_when_terminated(fake_environ, fake_json, fake_socket_send, fake_socket_terminated): socket = mock.Mock() client = websocket.WebSocket(socket, environ=fake_environ) fake_socket_terminated.return_value = True client.send_json({'foo': 'bar'}) assert not fake_json.dumps.called assert not fake_socket_send.called
def test_socket_send_json(fake_environ, fake_json, fake_socket_send): socket = mock.Mock() client = websocket.WebSocket(socket, environ=fake_environ) payload = {'foo': 'bar'} client.send_json(payload) fake_json.dumps.assert_called_once_with(payload) fake_socket_send.assert_called_once_with(client, fake_json.dumps.return_value)
def test_socket_sets_auth_data_from_environ(fake_environ): socket = mock.Mock() client = websocket.WebSocket(socket, environ=fake_environ) assert client.authenticated_userid == 'janet' assert client.effective_principals == [ security.Everyone, security.Authenticated, 'group:__world__', ]
def test_socket_enqueues_incoming_messages(fake_environ): socket = mock.Mock() client = websocket.WebSocket(socket, environ=fake_environ) message = FakeMessage('client data') queue = fake_environ['h.ws.streamer_work_queue'] client.received_message(message) result = queue.get_nowait() assert result.socket == client assert result.payload == 'client data'
def test_socket_enqueues_incoming_messages(): queue = Queue() request = testing.DummyRequest() request.registry['streamer.work_queue'] = queue socket = mock.Mock() client = websocket.WebSocket(socket) client.request = request message = FakeMessage('client data') client.received_message(message) result = queue.get_nowait() assert result.socket == client assert result.payload == 'client data'
def client(self, fake_environ): sock = mock.Mock(spec_set=["sendall"]) return websocket.WebSocket(sock, environ=fake_environ)
def test_websocket_stores_instance_list(): socket = mock.Mock() clients = [websocket.WebSocket(socket), websocket.WebSocket(socket)] for c in clients: assert c in websocket.WebSocket.instances
def test_socket_sets_registry_from_environ(fake_environ): socket = mock.Mock() client = websocket.WebSocket(socket, environ=fake_environ) assert client.registry == mock.sentinel.registry