Ejemplo n.º 1
0
 async def client_connected(self, stream_reader, stream_writer):
     self._logger.debug("%s: Client connected", self)
     protocol = QDataStreamProtocol(stream_reader, stream_writer)
     connection = self._connection_factory()
     try:
         await connection.on_connection_made(
             protocol, Address(*stream_writer.get_extra_info('peername')))
         self.connections[connection] = protocol
         server.stats.gauge('user.agents.None', 1, delta=True)
         while True:
             message = await protocol.read_message()
             with server.stats.timer('connection.on_message_received'):
                 await connection.on_message_received(message)
             with server.stats.timer('servercontext.drain'):
                 await asyncio.sleep(0)
                 await connection.drain()
     except ConnectionResetError:
         pass
     except ConnectionAbortedError:
         pass
     except TimeoutError:
         pass
     except asyncio.IncompleteReadError as ex:
         if not stream_reader.at_eof():
             self._logger.exception(ex)
     except Exception as ex:
         self._logger.exception(ex)
     finally:
         del self.connections[connection]
         server.stats.gauge('user.agents.{}'.format(connection.user_agent),
                            -1,
                            delta=True)
         protocol.writer.close()
         await connection.on_connection_lost()
Ejemplo n.º 2
0
def unix_protocol(unix_srv, event_loop):
    (reader, writer) = event_loop.run_until_complete(
        asyncio.open_unix_connection('/tmp/test.sock')
    )
    protocol = QDataStreamProtocol(reader, writer)
    yield protocol

    protocol.close()
Ejemplo n.º 3
0
def test_serverside_abort(loop, mock_context, mock_server):
    (reader, writer) = yield from asyncio.open_connection(*mock_context.sockets[0].getsockname())
    proto = QDataStreamProtocol(reader, writer)
    proto.send_message({"some_junk": True})
    yield from writer.drain()
    yield from asyncio.sleep(0.1)

    mock_server.on_connection_lost.assert_any_call()
Ejemplo n.º 4
0
async def test_serverside_abort(event_loop, mock_context, mock_server):
    srv, ctx = mock_context
    (reader,
     writer) = await asyncio.open_connection(*srv.sockets[0].getsockname())
    proto = QDataStreamProtocol(reader, writer)
    await proto.send_message({"some_junk": True})
    await exhaust_callbacks(event_loop)

    mock_server.on_connection_lost.assert_any_call()
Ejemplo n.º 5
0
def connect_client(server):
    return QDataStreamProtocol(*(yield from asyncio.open_connection(
        *server.sockets[0].getsockname())))
Ejemplo n.º 6
0
async def connect_client(server) -> QDataStreamProtocol:
    return QDataStreamProtocol(
        *(await asyncio.open_connection(*server.sockets[0].getsockname()))
    )
Ejemplo n.º 7
0
def protocol(reader, writer):
    return QDataStreamProtocol(reader, writer)
Ejemplo n.º 8
0
def mock_protocol():
    return mock.create_autospec(QDataStreamProtocol(mock.Mock(), mock.Mock()))
Ejemplo n.º 9
0
async def unix_protocol(unix_srv):
    (reader, writer) = await asyncio.open_unix_connection("/tmp/test.sock")
    protocol = QDataStreamProtocol(reader, writer)
    yield protocol

    await protocol.close()
Ejemplo n.º 10
0
 async def connect(self, host, port):
     self.proto = QDataStreamProtocol(
         *(await asyncio.open_connection(host, port)))