def test_GIVEN_empty_string_WHEN_validating_field_value_THEN_returns_intermediate_and_emits_signal_with_false( ): validator = FieldValueValidator(object, object) validator.is_valid = Mock() assert validator.validate("", 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)
def test_GIVEN_invalid_float_value_WHEN_validating_field_value_THEN_returns_intermediate_and_emits_signal_with_false(): invalid_value = "sdfn" field_type_combo = DummyCombo(FieldType.scalar_dataset.value) dataset_type_combo = DummyCombo("Float") validator = FieldValueValidator( field_type_combo, dataset_type_combo, FieldType.scalar_dataset.value ) validator.is_valid = Mock() assert validator.validate(invalid_value, 0) == QValidator.Intermediate validator.is_valid.emit.assert_called_once_with(False)
def test_GIVEN_valid_string_value_WHEN_validating_field_value_THEN_returns_acceptable_and_emits_signal_with_true(): strvalue = "123a" field_type_combo = DummyCombo(FieldType.scalar_dataset.value) dataset_type_combo = DummyCombo("String") validator = FieldValueValidator( field_type_combo, dataset_type_combo, FieldType.scalar_dataset.value ) validator.is_valid = Mock() assert validator.validate(strvalue, 0) == QValidator.Acceptable validator.is_valid.emit.assert_called_once_with(True)
def _set_up_value_validator(self, is_link: bool): self.value_line_edit.setValidator(None) if is_link: self.value_line_edit.setValidator( HDFLocationExistsValidator(self.instrument.nexus.nexus_file, self.field_type_combo)) tooltip_on_accept = "Valid HDF path" tooltip_on_reject = "HDF Path is not valid" else: self.value_line_edit.setValidator( FieldValueValidator( self.field_type_combo, self.value_type_combo, FieldType.scalar_dataset.value, )) tooltip_on_accept = "Value is cast-able to numpy type." tooltip_on_reject = "Value is not cast-able to selected numpy type." self.value_line_edit.validator().is_valid.connect( partial( validate_line_edit, self.value_line_edit, tooltip_on_accept=tooltip_on_accept, tooltip_on_reject=tooltip_on_reject, )) self.value_line_edit.validator().validate(self.value_line_edit.text(), None)
def dtype_changed(self, _: str): self.attr_value_lineedit.setValidator( FieldValueValidator(self.array_or_scalar_combo, self.attr_dtype_combo)) self.attr_value_lineedit.validator().is_valid.connect( partial( validate_line_edit, self.attr_value_lineedit, tooltip_on_accept="Value is cast-able to numpy type.", tooltip_on_reject= "Value is not cast-able to selected numpy type.", )) self.attr_value_lineedit.validator().validate( self.attr_value_lineedit.text(), 0)
def _set_up_value_validator(self, is_link: bool): self.value_line_edit.setValidator(None) if is_link: return else: self.value_line_edit.setValidator( FieldValueValidator( self.field_type_combo, self.value_type_combo, FieldType.scalar_dataset.value, )) tooltip_on_accept = "Value is cast-able to numpy type." tooltip_on_reject = "Value is not cast-able to selected numpy type." self.value_line_edit.validator().is_valid.connect( partial( validate_line_edit, self.value_line_edit, tooltip_on_accept=tooltip_on_accept, tooltip_on_reject=tooltip_on_reject, )) self.value_line_edit.validator().validate(self.value_line_edit.text(), None)