Commit cb99f35c authored by Xiaowu Zhang's avatar Xiaowu Zhang

product/ERP5Form/HoneypotField: use empty value to check for simplicity and change message name

parent 9071d2e8
......@@ -29,16 +29,15 @@ class HoneypotValidator(Validator.Validator):
"""
property_names = Validator.Validator.property_names
message_names = Validator.Validator.message_names + ['bot_submit']
bot_submit = 'A bot may try to submit.'
message_names = Validator.Validator.message_names + ['unexpected_value']
unexpected_value = 'Unexpected value'
def validate(self, field, key, REQUEST):
value = REQUEST.get(key, None)
default_value = field.get_value('default')
if value is None or value != default_value:
#this field is not sent or sent with value added by bot
self.raise_error('bot_submit', field)
return default_value
if value is None or value != '':
#this field is not sent or sent with value
self.raise_error('unexpected_value', field)
return value
HoneypotValidatorInstance = HoneypotValidator()
......
......@@ -52,19 +52,13 @@ class TestHoneypotField(ERP5TypeTestCase):
self.validator.validate, self.field, 'field_test_field',
self.portal.REQUEST)
def test_raise_error_when_no_default_value_submit(self):
def test_raise_error_when_not_empty_value_submit(self):
self.portal.REQUEST.set('field_test_field', 'test')
self.assertRaises(ValidationError,
self.validator.validate, self.field, 'field_test_field',
self.portal.REQUEST)
def test_ok_when_default_value_submit(self):
self.field.values['default'] = 'test'
self.portal.REQUEST.set('field_test_field', 'test')
self.assertEqual('test', self.validator.validate(self.field, 'field_test_field',
self.portal.REQUEST))
self.field.values['default'] = ''
def test_ok_when_empty_value_submit(self):
self.portal.REQUEST.set('field_test_field', '')
self.assertEqual('', self.validator.validate(self.field, 'field_test_field',
self.portal.REQUEST))
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment