def test_use_connection(self): connection = self.connections.acquire() message = kyoto.utils.berp.pack(beretta.encode((":call", ":dummy", ":echo", ["hello"]))) connection.sendall(message) response = kyoto.network.stream.receive(connection) self.assertEqual(beretta.decode(next(response)), (":reply", "hello?")) self.connections.release(connection)
def stream_request(self, connection, rtype, function, args, stream): status = self.send_message(connection, (":info", ":stream", [])) status = self.send_message(connection, (rtype, self.name, function, args)) stream = kyoto.network.stream.send(stream) for chunk in stream: connection.sendall(chunk) stream = kyoto.network.stream.receive(connection, server=False) response = self.handle_response(stream) return response
def send_message(self, connection, message): message = kyoto.utils.berp.pack(beretta.encode(message)) return connection.sendall(message)