def test_send_array(self): arrays = [ np.random.rand(7, 1), np.random.rand(10, 2), np.random.rand(10, 2, 4), np.random.rand(10, 1, 3), np.random.rand(10, 4, 3, 1), ] server = SimpleServer(('127.0.0.1', 0), ) server.start() client = Socket( socket.create_connection(('127.0.0.1', server.server_port))) sleep(0.1) server_socket = Socket(server.do_read()[0]) for array in arrays: server_socket.send_array(array) data_type = client.get_string() data_len = client.get_int() shape_len = client.get_int() shape = [] for ind in range(shape_len): shape.append(client.get_int()) data_bytes = client.check_received_length(data_len) data = np.frombuffer(data_bytes, dtype=data_type) data = data.reshape(tuple(shape)) assert np.all(data == array) client.close() server.stop()
def test_get_scalar(self): scalars = [15489, 2.4589] server = SimpleServer(('127.0.0.1', 0), ) server.start() client = Socket( socket.create_connection(('127.0.0.1', server.server_port))) sleep(0.1) server_socket = Socket(server.do_read()[0]) for scalar in scalars: server_socket.send_scalar(scalar) assert client.get_scalar() == scalar client.close() server.stop()
def test_send_another_list(self): listing = [ 'another list that should raise an exception because there is a boolean that is not a valid type', [ 'gg', ], ] server = SimpleServer(('127.0.0.1', 0), ) server.start() client = Socket( socket.create_connection(('127.0.0.1', server.server_port))) sleep(0.1) server_socket = Socket(server.do_read()[0]) with pytest.raises(TypeError): assert server_socket.send_list(listing) server.stop()
def test_send_scalar(self): scalars = [15489, 2.4589] server = SimpleServer(('127.0.0.1', 0), ) server.start() client = Socket( socket.create_connection(('127.0.0.1', server.server_port))) sleep(0.1) server_socket = Socket(server.do_read()[0]) for scalar in scalars: server_socket.send_scalar(scalar) data_type = client.get_string() data_len = client.get_int() data_bytes = client.check_received_length(data_len) data = np.frombuffer(data_bytes, dtype=data_type)[0] assert data == scalar client.close() server.stop()
def test_get_array(self): arrays = [ np.random.rand(7, 1), np.random.rand(10, 2), np.random.rand(10, 2, 4), np.random.rand(10, 1, 3), np.random.rand(10, 4, 3, 1), ] server = SimpleServer(('127.0.0.1', 0), ) server.start() client = Socket( socket.create_connection(('127.0.0.1', server.server_port))) server_socket = Socket(server.do_read()[0]) for array in arrays: server_socket.send_array(array) data = client.get_array() assert np.all(data == array) client.close() server.stop()
def test_methods(self, qtbot): server = SimpleServer(('127.0.0.1', 6341), ) server.start() params = [{ 'title': 'Device index:', 'name': 'device', 'type': 'int', 'value': 0, 'max': 3, 'min': 0 }, { 'title': 'Infos:', 'name': 'infos', 'type': 'str', 'value': "one_info", 'readonly': True }, { 'title': 'Line Settings:', 'name': 'line_settings', 'type': 'group', 'expanded': False, 'children': [ { 'name': 'someparam', 'type': 'float', 'value': 15.54, 'readonly': True }, ] }] param = Parameter.create(name='settings', type='group', children=params) client = TCPClient(ipaddress="127.0.0.1", port=6341, params_state=param.saveState(), client_type="sometype") client.cmd_signal.connect(self.get_cmd_signal) #check init method assert client.ipaddress == "127.0.0.1" assert client.port == 6341 assert client.client_type == 'sometype' client.socket = Socket( native_socket.socket(socket.AF_INET, socket.SOCK_STREAM)) client.socket.connect((client.ipaddress, client.port)) sleep(0.5) server_socket = Socket(server.do_read()[0]) client.send_data([np.array([0, 1, 2, 3]), 'item', 5.1]) assert server_socket.get_string() == 'Done' utils.check_vals_in_iterable(server_socket.get_list(), [np.array([0, 1, 2, 3]), 'item', 5.1]) client.send_infos_xml(custom_tree.parameter_to_xml_string(param)) assert server_socket.get_string() == 'Infos' assert server_socket.get_string( ) == custom_tree.parameter_to_xml_string(param).decode() client.send_info_string('someinfo', 'this is an info') assert server_socket.get_string() == 'Info' assert server_socket.get_string() == 'someinfo' assert server_socket.get_string() == 'this is an info' #test queue_command client.cmd_signal.connect(self.get_cmd_signal) client_manager = ClientObjectManager() client_manager.cmd_signal.connect(client.queue_command) with pytest.raises(Exception): client.queue_command(utils.ThreadCommand('Weird command')) #test get_data server_socket.send_string('set_info') server_socket.send_list(['line_settings', 'someparam']) server_socket.send_string( custom_tree.parameter_to_xml_string( param.child('line_settings', 'someparam'))) msg = client.socket.get_string() client.get_data(msg) assert self.command == 'set_info' utils.check_vals_in_iterable( self.attributes, [['line_settings', 'someparam'], custom_tree.parameter_to_xml_string( param.child('line_settings', 'someparam')).decode()]) server_socket.send_string('move_abs') server_socket.send_scalar(12.546) msg = client.socket.get_string() client.get_data(msg) assert self.command == 'move_abs' utils.check_vals_in_iterable(self.attributes, [12.546]) server_socket.send_string('move_rel') server_socket.send_scalar(3.2) msg = client.socket.get_string() client.get_data(msg) assert self.command == 'move_rel' utils.check_vals_in_iterable(self.attributes, [3.2]) server.stop()