def test_make_yaql_validator(self): mock_validator_property = mock.MagicMock() mock_validator_property.__getitem__().spec.evaluate.return_value = True mock_validator_property.get.return_value = 'foo_message' validator_func = fields.make_yaql_validator(mock_validator_property) self.assertTrue(hasattr(validator_func, '__call__')) validator_func('bar') mock_validator_property.__getitem__().spec.evaluate.\ assert_called_once_with(context=mock.ANY)
def test_make_yaql_validator_except_validation_error(self): mock_validator_property = mock.MagicMock() mock_validator_property.__getitem__().spec.evaluate.return_value =\ False mock_validator_property.get.return_value = 'foo_message' validator_func = fields.make_yaql_validator(mock_validator_property) self.assertTrue(hasattr(validator_func, '__call__')) e = self.assertRaises(forms.ValidationError, validator_func, 'bar') self.assertEqual('foo_message', e.message)
def finalize_fields(self): for field_name, field in six.iteritems(self.fields): field.form = self validators = [] for v in field.validators: expr = isinstance(v, dict) and v.get('expr') if expr and isinstance(expr, fields.RawProperty): v = fields.make_yaql_validator(v) validators.append(v) field.validators = validators