improved some corner cases in IS_IN_SET, thanks Fran

This commit is contained in:
Massimo Di Pierro
2012-04-06 09:13:07 -05:00
parent 9d33ff85ea
commit ca3aebddd6
2 changed files with 7 additions and 6 deletions
+1 -1
View File
@@ -1 +1 @@
Version 1.99.7 (2012-04-06 09:01:07) dev
Version 1.99.7 (2012-04-06 09:12:48) dev
+6 -5
View File
@@ -355,15 +355,16 @@ class IS_IN_SET(Validator):
def __call__(self, value):
if self.multiple:
### if below was values = re.compile("[\w\-:]+").findall(str(value))
if isinstance(value, (str,unicode)):
values = [value]
if not value:
values = []
elif isinstance(value, (tuple, list)):
values = value
elif not value:
values = []
else:
values = [value]
else:
values = [value]
failures = [x for x in values if not x in self.theset]
thestrset = [str(x) for x in self.theset]
failures = [x for x in values if not str(x) in thestrset]
if failures and self.theset:
if self.multiple and (value is None or value == ''):
return ([], None)