def handler_settings_get_all(): """Handle the GET all settings requests. :return: JSON string with the formed response. """ response_dict = { 'response_type': 'settings', 'response_state': 'full_response', 'success': True, 'settings_type': 'all', 'settings': [{ 'settings_type': 'compiler', 'selected': actions.get_compiler_path() }, { 'settings_type': 'sketch', 'selected': actions.get_sketch_path() }, { 'settings_type': 'board', 'options': [{'value': board, 'display_text': board} for board in actions.get_arduino_boards()], 'selected': actions.get_arduino_board_selected() }, { 'settings_type': 'serial', 'options': [{'value': k, 'display_text': v} for k, v in iteritems(actions.get_serial_ports())], 'selected': actions.get_serial_port_selected() }, { 'settings_type': 'ide', 'options': [{'value': k, 'display_text': v} for k, v in iteritems(actions.get_load_ide_options())], 'selected': actions.get_load_ide_selected() }] } set_header_no_cache() return response_dict
def handler_settings_get_individual(name): """Handle the GET setting requests. Error codes: 60 - Unexpected setting type requested. :param name: Setting value to retrieve. :return: JSON string with the formed response. """ success = True response_dict = { 'response_type': 'settings', 'response_state': 'full_response', 'settings_type': name } if name == 'compiler': response_dict.update({'selected': actions.get_compiler_path()}) elif name == 'sketch': response_dict.update({'selected': actions.get_sketch_path()}) elif name == 'board': response_dict.update({ 'options': [{ 'value': board, 'display_text': board } for board in actions.get_arduino_boards()], 'selected': actions.get_arduino_board_selected() }) elif name == 'serial': response_dict.update({ 'options': [{ 'value': k, 'display_text': v } for k, v in iteritems(actions.get_serial_ports())], 'selected': actions.get_serial_port_selected() }) elif name == 'ide': response_dict.update({ 'options': [{ 'value': k, 'display_text': v } for k, v in iteritems(actions.get_load_ide_options())], 'selected': actions.get_load_ide_selected() }) else: success = False response_dict.update({ 'settings_type': 'invalid', 'errors': [{ 'id': 61, 'description': 'Unexpected setting type requested.' }] }) response_dict.update({'success': success}) set_header_no_cache() return response_dict
def handle_settings(parameters): def _get_value(parameters2): """ Searches for a 'value' parameter in the dictionary. """ value2 = None for key2 in parameters2: if str(key2) == 'value': value2 = str(parameters2[key2]) return value2 message_back = None for key in parameters: # Compiler if str(key) == 'compiler': if str(parameters[key]) == "['get']": message_back = actions.get_compiler_path() elif str(parameters[key]) == "['set']": message_back = actions.set_compiler_path() # Sketch elif str(key) == 'sketch': if str(parameters[key]) == "['get']": message_back = actions.get_sketch_path() elif str(parameters[key]) == "['set']": message_back = actions.set_sketch_path() # Arduino Board elif str(key) == 'board': if str(parameters[key]) == "['get']": message_back = actions.get_arduino_boards() elif str(parameters[key]) == "['set']": value = _get_value(parameters) value = re.sub(r'^\[\'', '', value) value = re.sub(r'\'\]', '', value) message_back = actions.set_arduino_board(value) # Serial port elif str(key) == 'serial': if str(parameters[key]) == "['get']": message_back = actions.get_serial_ports() elif str(parameters[key]) == "['set']": value = _get_value(parameters) value = re.sub(r'^\[\'', '', value) value = re.sub(r'\'\]', '', value) message_back = actions.set_serial_port(value) # Launch Only Options elif str(key) == 'ide': if str(parameters[key]) == "['get']": message_back = actions.get_load_ide_only() elif str(parameters[key]) == "['set']": value = _get_value(parameters) value = re.sub(r'^\[\'', '', value) value = re.sub(r'\'\]', '', value) message_back = actions.set_load_ide_only(value) # The Value parameter is only used in some cases elif str(key) == 'value': pass # Parameter not recognised else: print('The "' + str(key) + '" = ' + str(parameters[key]) + ' parameter is not recognised!') return message_back
def test_get_compiler_path_invalid(self, mock_settings): """Test getting an invalid compiler path in get_compiler_path. :param mock_settings: Mock for ServerCompilerSettings constructor. :return: None. """ mock_settings.return_value.compiler_dir = '' returned_path = actions.get_compiler_path() self.assertIsNone(returned_path)
def test_get_compiler_path_valid(self, mock_settings): """Test getting a valid compiler path in get_compiler_path. :param mock_settings: Mock for ServerCompilerSettings constructor. :return: None. """ mock_settings.return_value.compiler_dir = 'Easy to identify str' returned_path = actions.get_compiler_path() self.assertEqual(returned_path, 'Easy to identify str')
def handler_settings_get_all(): """Handle the GET all settings requests. :return: JSON string with the formed response. """ response_dict = { 'response_type': 'settings', 'response_state': 'full_response', 'success': True, 'settings_type': 'all', 'settings': [{ 'settings_type': 'compiler', 'selected': actions.get_compiler_path() }, { 'settings_type': 'sketch', 'selected': actions.get_sketch_path() }, { 'settings_type': 'examples', 'selected': actions.get_examples_path() }, { 'settings_type': 'board', 'selected': actions.get_arduino_board_selected() }, { 'settings_type': 'boardflag', 'selected': actions.get_arduino_board_flag_selected() }, { 'settings_type': 'serial', 'options': [{ 'value': k, 'display_text': v } for k, v in iteritems(actions.get_serial_ports())], 'selected': actions.get_serial_port_selected() }, { 'settings_type': 'ide', 'options': [{ 'value': k, 'display_text': v } for k, v in iteritems(actions.get_load_ide_options())], 'selected': actions.get_load_ide_selected() }, { 'settings_type': 'baudrate', 'options': [{ 'value': k, 'display_text': v } for k, v in iteritems(actions.get_baud_rate_options())], 'selected': actions.get_baud_rate_selected() }, { 'settings_type': 'endofline', 'options': [{ 'value': k, 'display_text': v } for k, v in iteritems(actions.get_end_of_line_options())], 'selected': actions.get_end_of_line_selected() }, { 'settings_type': 'serialtimestamp', 'selected': actions.get_serial_time_stamp() }, { 'settings_type': 'loaddelay', 'selected': actions.get_load_delay() }] } set_header_no_cache() return response_dict