At first thanks villas for the correction of the boolean 'multiple'
argument.

DenesL I agree that "multiple should mean 1 or more, not zero or
more."

Making though the following test:

>>> IS_IN_SET(['max', 'john'])('')
('', 'value not allowed')
>>> IS_IN_SET(['max', 'john'], multiple=True)('')
([], None)

seems that the zero option strangely is allowed for the multiple case.

According to: 
http://www.web2py.com/examples/static/epydoc/web2py.gluon.validators.IS_IN_SET-class.html#__call__
this is due to lines:
 327              if self.multiple and (value == None or value ==
''):
 328                  return ([], None)

I think should return (value, self.error_message), as is the case for
multiple=False

>
> Because multiple is not False, but I am not sure about the logic.
> No selection should still fail because it is not in the set,
> i.e. multiple should mean 1 or more, not zero or more.
>

Reply via email to