def test_hash_to_wire_and_back(self): data = { 'command': 'update_metrics', 'data': [{ 'method': 'scalar', 'name': 'test1', 'y': 1.32, 'x': 0.56 }, { 'method': 'histogram', 'name': 'test2', 'y': 1000.32, 'x': 1 }] } wire = RLXMessage.to_wire(data) back = RLXMessage.from_wire(wire) # print(back) assert len(data) == len(back) for key in data: assert isinstance(data[key], type(back[key])) assert isinstance(back[key], type(data[key])) assert data[key] == back[key]
def test_string_received_and_send_string(self, monkeypatch): data = rlxm.to_wire({'response': 'ready'}) protocol = RLXProtocol('socket', ('localhost', 7000)) protocol.agent = Mock() protocol.agent.data_received = lambda x: x called_with = MockUtils.called_with(RLXProtocol, 'write_string', monkeypatch) protocol.string_received(data) assert called_with.args[1] == data
def test_to_wire_and_back(self): npar1 = np.array([1.001, 2.002, 3.003], dtype=np.float32) npar2 = np.array([[1.001, 2.002, 3.003], [1.001, 2.002, 3.003]]) npar2empty = np.array([[], []]) npar1empty = np.array([]) imageJPG = Image.open("./tests/fixtures/testimage.jpg") imageBMP = Image.open("./tests/fixtures/testimage.bmp") data = { 'arg1': 1, 'arg_1': -1, "args": "test1", "argn": -234, "argd": 0.067, "argbt": True, "argbf": False, "argnone": None, "array_empty": [], 'array': [4.02, 5.2, 6.006], 'nparray1': npar1, 'nparray2': npar2, 'nparray1empty': npar1empty, 'nparray2empty': npar2empty, 'npint32': np.int32(555), 'npint64': np.int64(5559999), 'image_jpg': RLXMessageImage(imageJPG), 'image_bmp': RLXMessageImage(imageBMP) } wire = RLXMessage.to_wire(data) back = RLXMessage.from_wire(wire) assert len(data) == len(back) for key in data: if isinstance(data[key], np.ndarray): assert isinstance(back[key], np.ndarray) npt.assert_allclose(data[key], back[key]) elif isinstance(data[key], RLXMessageImage): assert isinstance(back[key], np.ndarray) ndimage = np.asarray(data[key].image) ndimage = ndimage.astype(np.float32) * (1.0 / 255.0) npt.assert_allclose(ndimage, back[key]) elif isinstance(data[key], np.int32): assert isinstance(back[key], int) assert data[key] == back[key] elif isinstance(data[key], np.int64): assert isinstance(back[key], int) assert data[key] == back[key] else: assert isinstance(data[key], type(back[key])) assert isinstance(back[key], type(data[key])) assert data[key] == back[key]
def _exchange(self, data): if self.skt: try: self.transport.write_string(rlxm.to_wire(data)) ret = rlxm.from_wire(self.transport.read_string()) except Exception as e: raise AgentProxyException(str(e)) if not ('response' in ret): raise AgentProxyException("wring message format") elif ret['response'] == 'error': raise AgentProxyException(ret['message'] if 'message' in ret else "unknown error") else: raise AgentProxyException("no connection is available.") return ret['data'] if 'data' in ret else ret['response']
def serverDataReceived(self, data): if data['command'] == 'disconnect': self.disconnect() else: self.sendString(RLXMessage.to_wire(data)) self.cli_queue.get().addCallback(self.serverDataReceived)
def send_string(self, data): self.write_string(rlxm.to_wire(data))