new validators pass all tests
This commit is contained in:
@@ -1,2 +0,0 @@
|
|||||||
10 * * * * root **applications/admin/cron/expire_sessions.py
|
|
||||||
|
|
||||||
@@ -22,7 +22,7 @@ from .test_web import *
|
|||||||
from .test_sqlhtml import *
|
from .test_sqlhtml import *
|
||||||
from .test_cron import *
|
from .test_cron import *
|
||||||
from .test_is_url import *
|
from .test_is_url import *
|
||||||
# from .test_scheduler import *
|
from .test_scheduler import *
|
||||||
|
|
||||||
if sys.version[:3] == '2.7':
|
if sys.version[:3] == '2.7':
|
||||||
from .test_old_doctests import *
|
from .test_old_doctests import *
|
||||||
|
|||||||
+17
-25
@@ -328,8 +328,16 @@ class IS_LENGTH(Validator):
|
|||||||
def validate(self, value):
|
def validate(self, value):
|
||||||
if value is None:
|
if value is None:
|
||||||
length = 0
|
length = 0
|
||||||
if self.minsize <= length <= self.maxsize:
|
elif isinstance(value, str):
|
||||||
return value
|
try:
|
||||||
|
length = len(to_unicode(value))
|
||||||
|
except:
|
||||||
|
length = len(value)
|
||||||
|
elif isinstance(value, unicodeT):
|
||||||
|
length = len(value)
|
||||||
|
value = value.encode('utf8')
|
||||||
|
elif isinstance(value, (bytes, bytearray, tuple, list)):
|
||||||
|
length = len(value)
|
||||||
elif isinstance(value, cgi.FieldStorage):
|
elif isinstance(value, cgi.FieldStorage):
|
||||||
if value.file:
|
if value.file:
|
||||||
value.file.seek(0, os.SEEK_END)
|
value.file.seek(0, os.SEEK_END)
|
||||||
@@ -341,28 +349,12 @@ class IS_LENGTH(Validator):
|
|||||||
length = len(val)
|
length = len(val)
|
||||||
else:
|
else:
|
||||||
length = 0
|
length = 0
|
||||||
if self.minsize <= length <= self.maxsize:
|
else:
|
||||||
return value
|
value = str(value)
|
||||||
elif isinstance(value, str):
|
length = len(str(value))
|
||||||
try:
|
if self.minsize <= length <= self.maxsize:
|
||||||
lvalue = len(to_unicode(value))
|
return value
|
||||||
except:
|
raise ValidationError(self.translator(self.error_message) % dict(min=self.minsize, max=self.maxsize))
|
||||||
lvalue = len(value)
|
|
||||||
if self.minsize <= lvalue <= self.maxsize:
|
|
||||||
return value
|
|
||||||
elif isinstance(value, unicodeT):
|
|
||||||
if self.minsize <= len(value) <= self.maxsize:
|
|
||||||
return value.encode('utf8')
|
|
||||||
elif isinstance(value, (bytes, bytearray)):
|
|
||||||
if self.minsize <= len(value) <= self.maxsize:
|
|
||||||
return value
|
|
||||||
elif isinstance(value, (tuple, list)):
|
|
||||||
if self.minsize <= len(value) <= self.maxsize:
|
|
||||||
return value
|
|
||||||
elif self.minsize <= len(str(value)) <= self.maxsize:
|
|
||||||
return str(value)
|
|
||||||
raise ValidationError(self.translator(self.error_message) %
|
|
||||||
dict(min=self.minsize, max=self.maxsize))
|
|
||||||
|
|
||||||
|
|
||||||
class IS_JSON(Validator):
|
class IS_JSON(Validator):
|
||||||
@@ -3027,7 +3019,7 @@ class CRYPT(Validator):
|
|||||||
def validate(self, value):
|
def validate(self, value):
|
||||||
v = value and str(value)[:self.max_length]
|
v = value and str(value)[:self.max_length]
|
||||||
if not v or len(v) < self.min_length:
|
if not v or len(v) < self.min_length:
|
||||||
return ('', self.translator(self.error_message))
|
raise ValidationError(self.translator(self.error_message))
|
||||||
if isinstance(value, LazyCrypt):
|
if isinstance(value, LazyCrypt):
|
||||||
return value
|
return value
|
||||||
return LazyCrypt(self, value)
|
return LazyCrypt(self, value)
|
||||||
|
|||||||
Reference in New Issue
Block a user