Beispiel #1
0
    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
Beispiel #2
0
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
Beispiel #3
0
    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)
Beispiel #4
0
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)
Beispiel #5
0
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
Beispiel #6
0
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)
Beispiel #7
0
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__',
    ]
Beispiel #8
0
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'
Beispiel #9
0
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'
Beispiel #10
0
 def client(self, fake_environ):
     sock = mock.Mock(spec_set=["sendall"])
     return websocket.WebSocket(sock, environ=fake_environ)
Beispiel #11
0
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
Beispiel #12
0
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