def test_process_message_sends_serialized_messages_down_websocket(websocket): handler = Mock() handler.return_value = {'just': 'some message'} message = FakeMessage('{"foo": "bar"}') socket = FakeSocket('a') websocket.instances = [socket] streamer.process_message(handler, Mock(), message) socket.send.assert_called_once_with('{"just": "some message"}')
def test_process_message_does_not_send_messages_down_websocket_if_handler_response_is_none(websocket): handler = Mock() handler.return_value = None message = FakeMessage('{"foo": "bar"}') socket = FakeSocket('a') websocket.instances = [socket] streamer.process_message(handler, Mock(), message) assert socket.send.call_count == 0
def test_process_message_does_not_send_messages_down_websocket_if_socket_terminated(websocket): handler = Mock() handler.return_value = {'just': 'some message'} message = FakeMessage('{"foo": "bar"}') socket = FakeSocket('a') socket.terminated = True websocket.instances = [socket] streamer.process_message(handler, Mock(), message) assert socket.send.call_count == 0
def test_process_message_calls_handler_once_per_socket_with_deserialized_message(websocket): handler = Mock() handler.return_value = None message = FakeMessage('{"foo": "bar"}') websocket.instances = [FakeSocket('a'), FakeSocket('b')] streamer.process_message(handler, Mock(), message) assert handler.mock_calls == [ mock.call({'foo': 'bar'}, websocket.instances[0]), mock.call({'foo': 'bar'}, websocket.instances[1]), ]