Issue 1506: length argument wrong with unicode
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.4.7-stable+timestamp.2013.05.25.18.35.29
|
Version 2.4.7-stable+timestamp.2013.05.27.10.32.53
|
||||||
|
|||||||
+12
-6
@@ -315,15 +315,21 @@ class IS_LENGTH(Validator):
|
|||||||
length = 0
|
length = 0
|
||||||
if self.minsize <= length <= self.maxsize:
|
if self.minsize <= length <= self.maxsize:
|
||||||
return (value, None)
|
return (value, None)
|
||||||
elif isinstance(value, (str, unicode, list)):
|
elif isinstance(value, str):
|
||||||
|
try:
|
||||||
|
lvalue = len(value.decode('utf8'))
|
||||||
|
except:
|
||||||
|
lvalue = len(value)
|
||||||
|
if self.minsize <= lvalue <= self.maxsize:
|
||||||
|
return (value, None)
|
||||||
|
elif isinstance(value, unicode):
|
||||||
|
if self.minsize <= len(value) <= self.maxsize:
|
||||||
|
return (value.encode('utf8'), None)
|
||||||
|
elif isinstance(value, (tuple, list)):
|
||||||
if self.minsize <= len(value) <= self.maxsize:
|
if self.minsize <= len(value) <= self.maxsize:
|
||||||
return (value, None)
|
return (value, None)
|
||||||
elif self.minsize <= len(str(value)) <= self.maxsize:
|
elif self.minsize <= len(str(value)) <= self.maxsize:
|
||||||
try:
|
return (str(value), None)
|
||||||
value.decode('utf8')
|
|
||||||
return (value, None)
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return (value, translate(self.error_message)
|
return (value, translate(self.error_message)
|
||||||
% dict(min=self.minsize, max=self.maxsize))
|
% dict(min=self.minsize, max=self.maxsize))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user