Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
    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)
Ejemplo n.º 6
0
    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')
Ejemplo n.º 7
0
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