コード例 #1
0
    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]
コード例 #2
0
 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
コード例 #3
0
    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]
コード例 #4
0
 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']
コード例 #5
0
 def serverDataReceived(self, data):
     if data['command'] == 'disconnect':
         self.disconnect()
     else:
         self.sendString(RLXMessage.to_wire(data))
         self.cli_queue.get().addCallback(self.serverDataReceived)
コード例 #6
0
ファイル: rlx_protocol.py プロジェクト: zhly0/relaax
 def send_string(self, data):
     self.write_string(rlxm.to_wire(data))