def test_init(self): """Test init.""" default_select_parameter = DefaultSelectParameter() default_select_parameter.name = 'Default Select Affected Field' default_select_parameter.is_required = True default_select_parameter.help_text = 'Column used for affected field' default_select_parameter.description = ( 'Column used for affected field in the vector') default_select_parameter.element_type = str default_select_parameter.options_list = [ 'FLOODPRONE', 'affected', 'floodprone', 'yes/no', '\xddounicode test' ] default_select_parameter.value = 'affected' default_select_parameter.default_labels = [ 'Setting (%s)', 'Do not use', 'Custom' ] default_select_parameter.default_values = [0.1, None, 0.2] default_select_parameter.default_value = 0.1 widget = DefaultSelectParameterWidget(default_select_parameter) expected_value = default_select_parameter.value real_value = widget.get_parameter().value self.assertEqual(expected_value, real_value) self.assertFalse(widget.custom_value.isEnabled())
def test_init(self): """Test init.""" default_select_parameter = DefaultSelectParameter() default_select_parameter.name = 'Default Select Affected Field' default_select_parameter.is_required = True default_select_parameter.help_text = 'Column used for affected field' default_select_parameter.description = ( 'Column used for affected field in the vector') default_select_parameter.element_type = str default_select_parameter.options_list = [ 'FLOODPRONE', 'affected', 'floodprone', 'yes/no', '\xddounicode test'] default_select_parameter.value = 'affected' default_select_parameter.default_labels = [ 'Setting (%s)', 'Do not report', 'Custom'] default_select_parameter.default_values = [0.1, None, 0.2] default_select_parameter.default_value = 0.1 widget = DefaultSelectParameterWidget(default_select_parameter) expected_value = default_select_parameter.value real_value = widget.get_parameter().value self.assertEqual(expected_value, real_value) self.assertFalse(widget.custom_value.isEnabled())
def test_set_choice(self): """Test for set_choice method.""" default_select_parameter = DefaultSelectParameter() default_select_parameter.name = 'Default Select Affected Field' default_select_parameter.is_required = True default_select_parameter.help_text = 'Column used for affected field' default_select_parameter.description = ( 'Column used for affected field in the vector') default_select_parameter.element_type = str default_select_parameter.options_list = [ 'FLOODPRONE', 'affected', 'floodprone', 'yes/no', '\xddounicode test' ] default_select_parameter.value = 'affected' default_select_parameter.default_labels = [ 'Setting (%s)', 'Do not use', 'Custom' ] default_select_parameter.default_values = [0.1, None, 0.2] widget = DefaultSelectParameterWidget(default_select_parameter) expected = 'FLOODPRONE' widget.set_choice(expected) real_value = widget.get_parameter().value self.assertEqual(expected, real_value) expected = 0.1 widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertFalse(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 0) self.assertEqual(widget.custom_value.value(), 0.2) expected = 0.2 widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertTrue(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 2) self.assertEqual(widget.custom_value.value(), 0.2) expected = None widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertFalse(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 1) self.assertEqual(widget.custom_value.value(), 0.2) expected = 0.3 widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertTrue(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 2) self.assertEqual(widget.custom_value.value(), 0.3)
def test_set_choice(self): """Test for set_choice method.""" default_select_parameter = DefaultSelectParameter() default_select_parameter.name = 'Default Select Affected Field' default_select_parameter.is_required = True default_select_parameter.help_text = 'Column used for affected field' default_select_parameter.description = ( 'Column used for affected field in the vector') default_select_parameter.element_type = str default_select_parameter.options_list = [ 'FLOODPRONE', 'affected', 'floodprone', 'yes/no', '\xddounicode test'] default_select_parameter.value = 'affected' default_select_parameter.default_labels = [ 'Setting (%s)', 'Do not report', 'Custom'] default_select_parameter.default_values = [0.1, None, 0.2] widget = DefaultSelectParameterWidget(default_select_parameter) expected = 'FLOODPRONE' widget.set_choice(expected) real_value = widget.get_parameter().value self.assertEqual(expected, real_value) expected = 0.1 widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertFalse(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 0) self.assertEqual(widget.custom_value.value(), 0.2) expected = 0.2 widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertTrue(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 2) self.assertEqual(widget.custom_value.value(), 0.2) expected = None widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertFalse(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 1) self.assertEqual(widget.custom_value.value(), 0.2) expected = 0.3 widget.set_default(expected) real_value = widget.get_parameter().default self.assertEqual(expected, real_value) self.assertTrue(widget.custom_value.isEnabled()) self.assertEqual(widget.default_input_button_group.checkedId(), 2) self.assertEqual(widget.custom_value.value(), 0.3)
def set_widgets(self): """Set widgets on the Extra Keywords tab.""" self.clear() existing_inasafe_field = self.parent.get_existing_keyword( 'inasafe_fields') existing_inasafe_default_values = self.parent.get_existing_keyword( 'inasafe_default_values') # Remove old container and parameter if self.parameter_container: self.kwExtraKeywordsGridLayout.removeWidget( self.parameter_container) if self.parameters: self.parameters = [] # Iterate through all inasafe fields # existing_inasafe_default_values for inasafe_field in self.inasafe_fields_for_the_layer(): # Option for Not Available option_list = [no_field] for field in self.parent.layer.fields(): # Check the field type if isinstance(inasafe_field['type'], list): if field.type() in inasafe_field['type']: field_name = field.name() option_list.append('%s' % field_name) else: if field.type() == inasafe_field['type']: field_name = field.name() option_list.append('%s' % field_name) # Create DefaultSelectParameter parameter = DefaultSelectParameter() parameter.guid = inasafe_field['key'] parameter.name = inasafe_field['name'] parameter.is_required = False parameter.description = inasafe_field['description'] parameter.help_text = inasafe_field['help_text'] parameter.element_type = unicode parameter.options_list = option_list parameter.value = no_field parameter.default_labels = get_inasafe_default_value_fields( self.parent.setting, inasafe_field['key'])[0] parameter.default_values = get_inasafe_default_value_fields( self.parent.setting, inasafe_field['key'])[1] parameter.minimum = inasafe_field['default_value'].get('min_value') parameter.maximum = inasafe_field['default_value'].get('max_value') # Check if there is already value in the metadata. if existing_inasafe_field: existing_value = existing_inasafe_field.get( inasafe_field['key']) if existing_value: if existing_value in parameter.options_list: parameter.value = existing_value if existing_inasafe_default_values: existing_default_value = existing_inasafe_default_values.get( inasafe_field['key']) if existing_default_value: parameter.default = existing_default_value self.parameters.append(parameter) # Create the parameter container and add to the wizard. self.parameter_container = ParameterContainer( self.parameters, extra_parameters=self.extra_parameters) self.parameter_container.setup_ui() self.kwExtraKeywordsGridLayout.addWidget(self.parameter_container) # Add Message label self.kwExtraKeywordsGridLayout.addWidget(self.message_label) # Set default value to None for parameter_widget in self.parameter_container.\ get_parameter_widgets(): parameter_widget.widget().set_default(None) # Set selected radio button to 'Do not report' parameter_widget.widget().set_selected_radio_button() # Set default value from existing keywords if existing_inasafe_default_values: for guid, default in existing_inasafe_default_values.items(): parameter_widget = self.parameter_container.\ get_parameter_widget_by_guid(guid) if isinstance(parameter_widget, DefaultSelectParameterWidget): parameter_widget.set_default(default) # Set selected radio button to 'Do not report' parameter_widget.set_selected_radio_button()
def set_widgets(self): """Set widgets on the Extra Keywords tab.""" self.clear() existing_inasafe_field = self.parent.get_existing_keyword( 'inasafe_fields') existing_inasafe_default_values = self.parent.get_existing_keyword( 'inasafe_default_values') # Remove old container and parameter if self.parameter_container: self.kwExtraKeywordsGridLayout.removeWidget( self.parameter_container) if self.parameters: self.parameters = [] # Iterate through all inasafe fields # existing_inasafe_default_values for inasafe_field in self.inasafe_fields_for_the_layer(): # Option for Not Available option_list = [no_field] for field in self.parent.layer.fields(): # Check the field type if isinstance(inasafe_field['type'], list): if field.type() in inasafe_field['type']: field_name = field.name() option_list.append('%s' % field_name) else: if field.type() == inasafe_field['type']: field_name = field.name() option_list.append('%s' % field_name) # Create DefaultSelectParameter parameter = DefaultSelectParameter() parameter.guid = inasafe_field['key'] parameter.name = inasafe_field['name'] parameter.is_required = False parameter.description = inasafe_field['description'] parameter.help_text = inasafe_field['help_text'] parameter.element_type = str parameter.options_list = option_list parameter.value = no_field parameter.default_labels = get_inasafe_default_value_fields( self.parent.setting, inasafe_field['key'])[0] parameter.default_values = get_inasafe_default_value_fields( self.parent.setting, inasafe_field['key'])[1] parameter.minimum = inasafe_field['default_value'].get( 'min_value') parameter.maximum = inasafe_field['default_value'].get( 'max_value') # Check if there is already value in the metadata. if existing_inasafe_field: existing_value = existing_inasafe_field.get( inasafe_field['key']) if existing_value: if existing_value in parameter.options_list: parameter.value = existing_value if existing_inasafe_default_values: existing_default_value = existing_inasafe_default_values.get( inasafe_field['key']) if existing_default_value: parameter.default = existing_default_value self.parameters.append(parameter) # Create the parameter container and add to the wizard. self.parameter_container = ParameterContainer( self.parameters, extra_parameters=self.extra_parameters) self.parameter_container.setup_ui() self.kwExtraKeywordsGridLayout.addWidget(self.parameter_container) # Add Message label self.kwExtraKeywordsGridLayout.addWidget(self.message_label) # Set default value to None for parameter_widget in self.parameter_container.\ get_parameter_widgets(): parameter_widget.widget().set_default(None) # Set selected radio button to 'Do not report' parameter_widget.widget().set_selected_radio_button() # Set default value from existing keywords if existing_inasafe_default_values: for guid, default in list(existing_inasafe_default_values.items()): parameter_widget = self.parameter_container.\ get_parameter_widget_by_guid(guid) if isinstance(parameter_widget, DefaultSelectParameterWidget): parameter_widget.set_default(default) # Set selected radio button to 'Do not report' parameter_widget.set_selected_radio_button()