def test_field_allow_none_error_message(self): field = Field('name', String(), required=False, allow_none=False) error = None try: field.is_valid(None) except ValidationError as e: error = e.message self.assertEqual(error, 'This field can not be None')
def test_non_required_field_and_allow_none(self): """ensure that a non required field that does not allow null values raises an error when validating None """ field = Field('name', String(), required=False, allow_none=False) with self.assertRaises(ValidationError): field.is_valid(None)
def test_required_validation_error_message(self): field = Field('name', String()) error = None try: field.is_valid(None) except ValidationError as e: error = e.message self.assertEqual(error, 'This is a required field')
def test_extra_validators_run(self): mock_validator_1 = mock.MagicMock() mock_validator_2 = mock.MagicMock() mock_validator_3 = mock.MagicMock() validators = [mock_validator_1, mock_validator_2, mock_validator_3] field = Field('name', String(), extra_validators=validators) field.is_valid('string') self.assertTrue(mock_validator_1.called) self.assertTrue(mock_validator_2.called) self.assertTrue(mock_validator_3.called)
def test_field_type_validate_method_called(self): """ensure that after a field has run validation against required etc, it calls the validate method of the provided field type """ mocked = mock.MagicMock() class MyValidateType(String): def validate(self, value): mocked() return super(MyValidateType, self).validate(value) field = Field('name', MyValidateType()) field.is_valid('string') self.assertTrue(mocked.called)
def test_read_only_field_is_valid_when_required_value_is_none(self): """ensure a read only field is always considered valid """ field = Field('name', String(), required=True, read_only=True) self.assertTrue(field.is_valid(None))
def test_required_field_raises_error_when_value_is_none(self): field = Field('name', String()) with self.assertRaises(ValidationError): field.is_valid(None)