Merge pull request #356 from niphlod/fix/tests
someone forgot tests.... grrrr!
This commit is contained in:
+3
-3
@@ -2224,7 +2224,7 @@ class FORM(DIV):
|
||||
INPUT(_type="button", _value=value, _class=_class,
|
||||
_onclick=url if url.startswith('javascript:') else
|
||||
self.REDIRECT_JS % url))
|
||||
|
||||
|
||||
@staticmethod
|
||||
def confirm(text='OK', buttons=None, hidden=None):
|
||||
if not buttons:
|
||||
@@ -2531,7 +2531,7 @@ def test():
|
||||
>>> print form.accepts({'myvar':'34'}, formname=None)
|
||||
False
|
||||
>>> print form.xml()
|
||||
<form action="#" enctype="multipart/form-data" method="post"><input class="invalidinput" name="myvar" type="text" value="34" /><div class="error_wrapper"><div class="error" id="myvar__error">invalid expression</div></div></form>
|
||||
<form action="#" enctype="multipart/form-data" method="post"><input class="invalidinput" name="myvar" type="text" value="34" /><div class="error_wrapper"><div class="error" id="myvar__error">Invalid expression</div></div></form>
|
||||
>>> print form.accepts({'myvar':'4'}, formname=None, keepvalues=True)
|
||||
True
|
||||
>>> print form.xml()
|
||||
@@ -2711,7 +2711,7 @@ class MARKMIN(XmlComponent):
|
||||
self.extra = extra or {}
|
||||
self.allowed = allowed or {}
|
||||
self.sep = sep
|
||||
self.url = URL if url == True else url
|
||||
self.url = URL if url == True else url
|
||||
self.environment = environment
|
||||
self.latex = latex
|
||||
self.autolinks = autolinks
|
||||
|
||||
+41
-41
@@ -55,10 +55,10 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('google.ca:80'), ('http://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
self.assertEqual(x('google..ca'), ('google..ca', 'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('google..ca'), ('google..ca', 'Enter a valid URL'))
|
||||
self.assertEqual(
|
||||
x('google.ca..'), ('google.ca..', 'enter a valid URL'))
|
||||
x('google.ca..'), ('google.ca..', 'Enter a valid URL'))
|
||||
|
||||
# explicit use of 'http' mode
|
||||
|
||||
@@ -69,7 +69,7 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('google.ca:80'), ('http://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# prepends 'https' instead of 'http'
|
||||
|
||||
@@ -80,7 +80,7 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('google.ca:80'), ('https://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# prepending disabled
|
||||
|
||||
@@ -90,7 +90,7 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('google.ca'), ('google.ca', None))
|
||||
self.assertEqual(x('google.ca:80'), ('google.ca:80', None))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# custom allowed_schemes
|
||||
|
||||
@@ -98,12 +98,12 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('http://google.ca'), ('http://google.ca',
|
||||
None))
|
||||
self.assertEqual(x('https://google.ca'), ('https://google.ca',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('http://google.ca', None))
|
||||
self.assertEqual(x('google.ca:80'), ('http://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# custom allowed_schemes, excluding None
|
||||
|
||||
@@ -111,32 +111,32 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('http://google.ca'), ('http://google.ca',
|
||||
None))
|
||||
self.assertEqual(x('https://google.ca'), ('https://google.ca',
|
||||
'enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
self.assertEqual(x('google.ca:80'), ('google.ca:80',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# custom allowed_schemes and prepend_scheme
|
||||
|
||||
x = IS_URL(allowed_schemes=[None, 'https'],
|
||||
prepend_scheme='https')
|
||||
self.assertEqual(x('http://google.ca'), ('http://google.ca',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('https://google.ca'), ('https://google.ca',
|
||||
None))
|
||||
self.assertEqual(x('google.ca'), ('https://google.ca', None))
|
||||
self.assertEqual(x('google.ca:80'), ('https://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('unreal.blargg'), ('unreal.blargg',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# Now any URL requiring prepending will fail, but prepending is still
|
||||
# enabled!
|
||||
|
||||
x = IS_URL(allowed_schemes=['http'])
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
|
||||
def testModeGeneric(self):
|
||||
|
||||
@@ -147,7 +147,7 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('google.ca'), ('google.ca', None))
|
||||
self.assertEqual(x('google.ca:80'), ('http://google.ca:80', None))
|
||||
self.assertEqual(x('blargg://unreal'), ('blargg://unreal',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# 'generic' mode with custom allowed_schemes that still includes
|
||||
# 'http' (the default for prepend_scheme)
|
||||
@@ -156,10 +156,10 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('http://google.ca'), ('http://google.ca',
|
||||
None))
|
||||
self.assertEqual(x('ftp://google.ca'), ('ftp://google.ca',
|
||||
'enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
self.assertEqual(x('google.ca:80'), ('google.ca:80',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('blargg://unreal'), ('blargg://unreal',
|
||||
None))
|
||||
|
||||
@@ -174,27 +174,27 @@ class TestIsUrl(unittest.TestCase):
|
||||
self.assertEqual(x('google.ca:80'), ('ftp://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('blargg://unreal'), ('blargg://unreal',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# 'generic' mode with overriden allowed_schemes and prepend_scheme
|
||||
|
||||
x = IS_URL(mode='generic', allowed_schemes=[None, 'ftp', 'ftps'
|
||||
], prepend_scheme='ftp')
|
||||
self.assertEqual(x('http://google.ca'), ('http://google.ca',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', None))
|
||||
self.assertEqual(x('ftp://google.ca'), ('ftp://google.ca',
|
||||
None))
|
||||
self.assertEqual(x('google.ca:80'), ('ftp://google.ca:80',
|
||||
None))
|
||||
self.assertEqual(x('blargg://unreal'), ('blargg://unreal',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
# Now any URL requiring prepending will fail, but prepending is still
|
||||
# enabled!
|
||||
|
||||
x = IS_URL(mode='generic', allowed_schemes=['http'])
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
|
||||
def testExceptionalUse(self):
|
||||
|
||||
@@ -305,14 +305,14 @@ class TestIsUrl(unittest.TestCase):
|
||||
# prepend_scheme has the invalid value 'http', we don't care!
|
||||
|
||||
x = IS_URL(allowed_schemes=['https'], prepend_scheme='https')
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
|
||||
# Not inluding None in the allowed_schemes essentially disabled prepending, so even though
|
||||
# prepend_scheme has the invalid value 'http', we don't care!
|
||||
|
||||
x = IS_URL(mode='generic', allowed_schemes=['https'],
|
||||
prepend_scheme='https')
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
self.assertEqual(x('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
|
||||
|
||||
# ##############################################################################
|
||||
@@ -434,7 +434,7 @@ class TestIsGenericUrl(unittest.TestCase):
|
||||
|
||||
y = IS_GENERIC_URL(allowed_schemes=['http', 'blargg'],
|
||||
prepend_scheme='http')
|
||||
self.assertEqual(y('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
self.assertEqual(y('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
|
||||
|
||||
# ##############################################################################
|
||||
@@ -605,9 +605,9 @@ class TestIsHttpUrl(unittest.TestCase):
|
||||
# Does not prepend if None type is not specified in allowed_scheme, because a scheme is required
|
||||
|
||||
a = IS_HTTP_URL(allowed_schemes=['http'])
|
||||
self.assertEqual(a('google.ca'), ('google.ca', 'enter a valid URL'))
|
||||
self.assertEqual(a('google.ca'), ('google.ca', 'Enter a valid URL'))
|
||||
self.assertEqual(a('google.ca:80'), ('google.ca:80',
|
||||
'enter a valid URL'))
|
||||
'Enter a valid URL'))
|
||||
|
||||
|
||||
class TestUnicode(unittest.TestCase):
|
||||
@@ -667,33 +667,33 @@ class TestUnicode(unittest.TestCase):
|
||||
|
||||
def testInvalidUrls(self):
|
||||
self.assertEquals(
|
||||
self.x(u'://ABC.com'), (u'://ABC.com', 'enter a valid URL'))
|
||||
self.x(u'://ABC.com'), (u'://ABC.com', 'Enter a valid URL'))
|
||||
self.assertEquals(self.x(u'http://\u4e2d\u4fd4.dne'), (
|
||||
u'http://\u4e2d\u4fd4.dne', 'enter a valid URL'))
|
||||
u'http://\u4e2d\u4fd4.dne', 'Enter a valid URL'))
|
||||
self.assertEquals(self.x(u'https://google.dne'), (
|
||||
u'https://google.dne', 'enter a valid URL'))
|
||||
u'https://google.dne', 'Enter a valid URL'))
|
||||
self.assertEquals(self.x(u'https://google..ca'), (
|
||||
u'https://google..ca', 'enter a valid URL'))
|
||||
u'https://google..ca', 'Enter a valid URL'))
|
||||
self.assertEquals(
|
||||
self.x(u'google..ca'), (u'google..ca', 'enter a valid URL'))
|
||||
self.x(u'google..ca'), (u'google..ca', 'Enter a valid URL'))
|
||||
self.assertEquals(self.x(u'http://' + u'\u4e2d' * 1000 + u'.com'), (
|
||||
u'http://' + u'\u4e2d' * 1000 + u'.com', 'enter a valid URL'))
|
||||
u'http://' + u'\u4e2d' * 1000 + u'.com', 'Enter a valid URL'))
|
||||
|
||||
self.assertEquals(self.x(u'http://google.com#fragment_\u4e86'), (
|
||||
u'http://google.com#fragment_\u4e86', 'enter a valid URL'))
|
||||
u'http://google.com#fragment_\u4e86', 'Enter a valid URL'))
|
||||
self.assertEquals(self.x(u'http\u4e86://google.com'), (
|
||||
u'http\u4e86://google.com', 'enter a valid URL'))
|
||||
u'http\u4e86://google.com', 'Enter a valid URL'))
|
||||
self.assertEquals(self.x(u'http\u4e86://google.com#fragment_\u4e86'), (
|
||||
u'http\u4e86://google.com#fragment_\u4e86', 'enter a valid URL'))
|
||||
u'http\u4e86://google.com#fragment_\u4e86', 'Enter a valid URL'))
|
||||
|
||||
self.assertEquals(self.y(u'http://\u4e2d\u4fd4.com/\u4e86'), (
|
||||
u'http://\u4e2d\u4fd4.com/\u4e86', 'enter a valid URL'))
|
||||
#self.assertEquals(self.y(u'google.ca'), (u'google.ca', 'enter a valid URL'))
|
||||
u'http://\u4e2d\u4fd4.com/\u4e86', 'Enter a valid URL'))
|
||||
#self.assertEquals(self.y(u'google.ca'), (u'google.ca', 'Enter a valid URL'))
|
||||
|
||||
self.assertEquals(self.z(u'invalid.domain..com'), (
|
||||
u'invalid.domain..com', 'enter a valid URL'))
|
||||
u'invalid.domain..com', 'Enter a valid URL'))
|
||||
self.assertEquals(self.z(u'invalid.\u4e2d\u4fd4.blargg'), (
|
||||
u'invalid.\u4e2d\u4fd4.blargg', 'enter a valid URL'))
|
||||
u'invalid.\u4e2d\u4fd4.blargg', 'Enter a valid URL'))
|
||||
|
||||
# ##############################################################################
|
||||
|
||||
|
||||
+106
-106
@@ -60,9 +60,9 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = ANY_OF([IS_EMAIL(),IS_ALPHANUMERIC()])('abco')
|
||||
self.assertEqual(rtn, ('abco', None))
|
||||
rtn = ANY_OF([IS_EMAIL(),IS_ALPHANUMERIC()])('@ab.co')
|
||||
self.assertEqual(rtn, ('@ab.co', 'enter only letters, numbers, and underscore'))
|
||||
self.assertEqual(rtn, ('@ab.co', 'Enter only letters, numbers, and underscore'))
|
||||
rtn = ANY_OF([IS_ALPHANUMERIC(),IS_EMAIL()])('@ab.co')
|
||||
self.assertEqual(rtn, ('@ab.co', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('@ab.co', 'Enter a valid email address'))
|
||||
|
||||
def test_CLEANUP(self):
|
||||
rtn = CLEANUP()('helloò')
|
||||
@@ -99,7 +99,7 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_ALPHANUMERIC()('A_a')
|
||||
self.assertEqual(rtn, ('A_a', None))
|
||||
rtn = IS_ALPHANUMERIC()('!')
|
||||
self.assertEqual(rtn, ('!', 'enter only letters, numbers, and underscore'))
|
||||
self.assertEqual(rtn, ('!', 'Enter only letters, numbers, and underscore'))
|
||||
|
||||
def test_IS_DATE_IN_RANGE(self):
|
||||
v = IS_DATE_IN_RANGE(minimum=datetime.date(2008,1,1),
|
||||
@@ -151,39 +151,39 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_DECIMAL_IN_RANGE(1,5)(1)
|
||||
self.assertEqual(rtn, (decimal.Decimal('1'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1,5)(5.25)
|
||||
self.assertEqual(rtn, (5.25, 'enter a number between 1 and 5'))
|
||||
self.assertEqual(rtn, (5.25, 'Enter a number between 1 and 5'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(5.25,6)(5.25)
|
||||
self.assertEqual(rtn, (decimal.Decimal('5.25'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(5.25,6)('5.25')
|
||||
self.assertEqual(rtn, (decimal.Decimal('5.25'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1,5)(6.0)
|
||||
self.assertEqual(rtn, (6.0, 'enter a number between 1 and 5'))
|
||||
self.assertEqual(rtn, (6.0, 'Enter a number between 1 and 5'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1,5)(3.5)
|
||||
self.assertEqual(rtn, (decimal.Decimal('3.5'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1.5,5.5)(3.5)
|
||||
self.assertEqual(rtn, (decimal.Decimal('3.5'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1.5,5.5)(6.5)
|
||||
self.assertEqual(rtn, (6.5, 'enter a number between 1.5 and 5.5'))
|
||||
self.assertEqual(rtn, (6.5, 'Enter a number between 1.5 and 5.5'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1.5,None)(6.5)
|
||||
self.assertEqual(rtn, (decimal.Decimal('6.5'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(1.5,None)(0.5)
|
||||
self.assertEqual(rtn, (0.5, 'enter a number greater than or equal to 1.5'))
|
||||
self.assertEqual(rtn, (0.5, 'Enter a number greater than or equal to 1.5'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(None,5.5)(4.5)
|
||||
self.assertEqual(rtn, (decimal.Decimal('4.5'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(None,5.5)(6.5)
|
||||
self.assertEqual(rtn, (6.5, 'enter a number less than or equal to 5.5'))
|
||||
self.assertEqual(rtn, (6.5, 'Enter a number less than or equal to 5.5'))
|
||||
rtn = IS_DECIMAL_IN_RANGE()(6.5)
|
||||
self.assertEqual(rtn, (decimal.Decimal('6.5'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE(0,99)(123.123)
|
||||
self.assertEqual(rtn, (123.123, 'enter a number between 0 and 99'))
|
||||
self.assertEqual(rtn, (123.123, 'Enter a number between 0 and 99'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(0,99)('123.123')
|
||||
self.assertEqual(rtn, ('123.123', 'enter a number between 0 and 99'))
|
||||
self.assertEqual(rtn, ('123.123', 'Enter a number between 0 and 99'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(0,99)('12.34')
|
||||
self.assertEqual(rtn, (decimal.Decimal('12.34'), None))
|
||||
rtn = IS_DECIMAL_IN_RANGE()('abc')
|
||||
self.assertEqual(rtn, ('abc', 'enter a number'))
|
||||
self.assertEqual(rtn, ('abc', 'Enter a number'))
|
||||
rtn = IS_DECIMAL_IN_RANGE()('6,5')
|
||||
self.assertEqual(rtn, ('6,5', 'enter a number'))
|
||||
self.assertEqual(rtn, ('6,5', 'Enter a number'))
|
||||
rtn = IS_DECIMAL_IN_RANGE(dot=',')('6.5')
|
||||
self.assertEqual(rtn, (decimal.Decimal('6.5'), None))
|
||||
|
||||
@@ -199,25 +199,25 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_EMAIL()('abc@d_-f.us')
|
||||
self.assertEqual(rtn, ('abc@d_-f.us', None))
|
||||
rtn = IS_EMAIL()('@def.com') # missing name
|
||||
self.assertEqual(rtn, ('@def.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('@def.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('"abc@def".com') # quoted name
|
||||
self.assertEqual(rtn, ('"abc@def".com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('"abc@def".com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc+def.com') # no @
|
||||
self.assertEqual(rtn, ('abc+def.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc+def.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc@def.x') # one-char TLD
|
||||
self.assertEqual(rtn, ('abc@def.x', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc@def.x', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc@def.12') # numeric TLD
|
||||
self.assertEqual(rtn, ('abc@def.12', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc@def.12', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc@def..com') # double-dot in domain
|
||||
self.assertEqual(rtn, ('abc@def..com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc@def..com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc@.def.com') # dot starts domain
|
||||
self.assertEqual(rtn, ('abc@.def.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc@.def.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc@def.c_m') # underscore in TLD
|
||||
self.assertEqual(rtn, ('abc@def.c_m', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc@def.c_m', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('NotAnEmail') # missing @
|
||||
self.assertEqual(rtn, ('NotAnEmail', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('NotAnEmail', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('abc@NotAnEmail') # missing TLD
|
||||
self.assertEqual(rtn, ('abc@NotAnEmail', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc@NotAnEmail', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('customer/department@example.com')
|
||||
self.assertEqual(rtn, ('customer/department@example.com', None))
|
||||
rtn = IS_EMAIL()('$A12345@example.com')
|
||||
@@ -229,17 +229,17 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_EMAIL()('~@example.com')
|
||||
self.assertEqual(rtn, ('~@example.com', None))
|
||||
rtn = IS_EMAIL()('.wooly@example.com') # dot starts name
|
||||
self.assertEqual(rtn, ('.wooly@example.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('.wooly@example.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('wo..oly@example.com') # adjacent dots in name
|
||||
self.assertEqual(rtn, ('wo..oly@example.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('wo..oly@example.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('pootietang.@example.com') # dot ends name
|
||||
self.assertEqual(rtn, ('pootietang.@example.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('pootietang.@example.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('.@example.com') # name is bare dot
|
||||
self.assertEqual(rtn, ('.@example.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('.@example.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('Ima.Fool@example.com')
|
||||
self.assertEqual(rtn, ('Ima.Fool@example.com', None))
|
||||
rtn = IS_EMAIL()('Ima Fool@example.com') # space in name
|
||||
self.assertEqual(rtn, ('Ima Fool@example.com', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('Ima Fool@example.com', 'Enter a valid email address'))
|
||||
rtn = IS_EMAIL()('localguy@localhost') # localhost as domain
|
||||
self.assertEqual(rtn, ('localguy@localhost', None))
|
||||
|
||||
@@ -266,15 +266,15 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_EMPTY_OR(IS_EMAIL(), null='abc', empty_regex='def')('def')
|
||||
self.assertEqual(rtn, ('abc', None))
|
||||
rtn = IS_EMPTY_OR(IS_EMAIL())('abc')
|
||||
self.assertEqual(rtn, ('abc', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc', 'Enter a valid email address'))
|
||||
rtn = IS_EMPTY_OR(IS_EMAIL())(' abc ')
|
||||
self.assertEqual(rtn, ('abc', 'enter a valid email address'))
|
||||
self.assertEqual(rtn, ('abc', 'Enter a valid email address'))
|
||||
|
||||
def test_IS_EXPR(self):
|
||||
rtn = IS_EXPR('int(value) < 2')('1')
|
||||
self.assertEqual(rtn, ('1', None))
|
||||
rtn = IS_EXPR('int(value) < 2')('2')
|
||||
self.assertEqual(rtn, ('2', 'invalid expression'))
|
||||
self.assertEqual(rtn, ('2', 'Invalid expression'))
|
||||
rtn = IS_EXPR(lambda value: int(value))('1')
|
||||
self.assertEqual(rtn, ('1', 1))
|
||||
rtn = IS_EXPR(lambda value: int(value) < 2 and 'invalid' or None)('2')
|
||||
@@ -288,9 +288,9 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_FLOAT_IN_RANGE(1,5)(1)
|
||||
self.assertEqual(rtn, (1.0, None))
|
||||
rtn = IS_FLOAT_IN_RANGE(1,5)(5.25)
|
||||
self.assertEqual(rtn, (5.25, 'enter a number between 1 and 5'))
|
||||
self.assertEqual(rtn, (5.25, 'Enter a number between 1 and 5'))
|
||||
rtn = IS_FLOAT_IN_RANGE(1,5)(6.0)
|
||||
self.assertEqual(rtn, (6.0, 'enter a number between 1 and 5'))
|
||||
self.assertEqual(rtn, (6.0, 'Enter a number between 1 and 5'))
|
||||
rtn = IS_FLOAT_IN_RANGE(1,5)(3.5)
|
||||
self.assertEqual(rtn, (3.5, None))
|
||||
rtn = IS_FLOAT_IN_RANGE(1,None)(3.5)
|
||||
@@ -298,15 +298,15 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_FLOAT_IN_RANGE(None,5)(3.5)
|
||||
self.assertEqual(rtn, (3.5, None))
|
||||
rtn = IS_FLOAT_IN_RANGE(1,None)(0.5)
|
||||
self.assertEqual(rtn, (0.5, 'enter a number greater than or equal to 1'))
|
||||
self.assertEqual(rtn, (0.5, 'Enter a number greater than or equal to 1'))
|
||||
rtn = IS_FLOAT_IN_RANGE(None,5)(6.5)
|
||||
self.assertEqual(rtn, (6.5, 'enter a number less than or equal to 5'))
|
||||
self.assertEqual(rtn, (6.5, 'Enter a number less than or equal to 5'))
|
||||
rtn = IS_FLOAT_IN_RANGE()(6.5)
|
||||
self.assertEqual(rtn, (6.5, None))
|
||||
rtn = IS_FLOAT_IN_RANGE()('abc')
|
||||
self.assertEqual(rtn, ('abc', 'enter a number'))
|
||||
self.assertEqual(rtn, ('abc', 'Enter a number'))
|
||||
rtn = IS_FLOAT_IN_RANGE()('6,5')
|
||||
self.assertEqual(rtn, ('6,5', 'enter a number'))
|
||||
self.assertEqual(rtn, ('6,5', 'Enter a number'))
|
||||
rtn = IS_FLOAT_IN_RANGE(dot=',')('6.5')
|
||||
self.assertEqual(rtn, (6.5, None))
|
||||
|
||||
@@ -315,11 +315,11 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IN_SET(['max', 'john'])('max')
|
||||
self.assertEqual(rtn, ('max', None))
|
||||
rtn = IS_IN_SET(['max', 'john'])('massimo')
|
||||
self.assertEqual(rtn, ('massimo', 'value not allowed'))
|
||||
self.assertEqual(rtn, ('massimo', 'Value not allowed'))
|
||||
rtn = IS_IN_SET(['max', 'john'], multiple=True)(('max', 'john'))
|
||||
self.assertEqual(rtn, (('max', 'john'), None))
|
||||
rtn = IS_IN_SET(['max', 'john'], multiple=True)(('bill', 'john'))
|
||||
self.assertEqual(rtn, (('bill', 'john'), 'value not allowed'))
|
||||
self.assertEqual(rtn, (('bill', 'john'), 'Value not allowed'))
|
||||
rtn = IS_IN_SET(('id1','id2'), ['first label','second label'])('id1') # Traditional way
|
||||
self.assertEqual(rtn, ('id1', None))
|
||||
rtn = IS_IN_SET({'id1':'first label', 'id2':'second label'})('id1')
|
||||
@@ -338,23 +338,23 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_INT_IN_RANGE(1,5)(1)
|
||||
self.assertEqual(rtn, (1, None))
|
||||
rtn = IS_INT_IN_RANGE(1,5)(5)
|
||||
self.assertEqual(rtn, (5, 'enter an integer between 1 and 4'))
|
||||
self.assertEqual(rtn, (5, 'Enter an integer between 1 and 4'))
|
||||
rtn = IS_INT_IN_RANGE(1,5)(5)
|
||||
self.assertEqual(rtn, (5, 'enter an integer between 1 and 4'))
|
||||
self.assertEqual(rtn, (5, 'Enter an integer between 1 and 4'))
|
||||
rtn = IS_INT_IN_RANGE(1,5)(3.5)
|
||||
self.assertEqual(rtn, (3.5, 'enter an integer between 1 and 4'))
|
||||
self.assertEqual(rtn, (3.5, 'Enter an integer between 1 and 4'))
|
||||
rtn = IS_INT_IN_RANGE(None,5)('4')
|
||||
self.assertEqual(rtn, (4, None))
|
||||
rtn = IS_INT_IN_RANGE(None,5)('6')
|
||||
self.assertEqual(rtn, ('6', 'enter an integer less than or equal to 4'))
|
||||
self.assertEqual(rtn, ('6', 'Enter an integer less than or equal to 4'))
|
||||
rtn = IS_INT_IN_RANGE(1,None)('4')
|
||||
self.assertEqual(rtn, (4, None))
|
||||
rtn = IS_INT_IN_RANGE(1,None)('0')
|
||||
self.assertEqual(rtn, ('0', 'enter an integer greater than or equal to 1'))
|
||||
self.assertEqual(rtn, ('0', 'Enter an integer greater than or equal to 1'))
|
||||
rtn = IS_INT_IN_RANGE()(6)
|
||||
self.assertEqual(rtn, (6, None))
|
||||
rtn = IS_INT_IN_RANGE()('abc')
|
||||
self.assertEqual(rtn, ('abc', 'enter an integer'))
|
||||
self.assertEqual(rtn, ('abc', 'Enter an integer'))
|
||||
|
||||
def test_IS_IPV4(self):
|
||||
rtn = IS_IPV4()('1.2.3.4')
|
||||
@@ -362,19 +362,19 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IPV4()('255.255.255.255')
|
||||
self.assertEqual(rtn, ('255.255.255.255', None))
|
||||
rtn = IS_IPV4()('1.2.3.4 ')
|
||||
self.assertEqual(rtn, ('1.2.3.4 ', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('1.2.3.4 ', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4()('1.2.3.4.5')
|
||||
self.assertEqual(rtn, ('1.2.3.4.5', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('1.2.3.4.5', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4()('123.123')
|
||||
self.assertEqual(rtn, ('123.123', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('123.123', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4()('1111.2.3.4')
|
||||
self.assertEqual(rtn, ('1111.2.3.4', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('1111.2.3.4', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4()('0111.2.3.4')
|
||||
self.assertEqual(rtn, ('0111.2.3.4', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('0111.2.3.4', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4()('256.2.3.4')
|
||||
self.assertEqual(rtn, ('256.2.3.4', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('256.2.3.4', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4()('300.2.3.4')
|
||||
self.assertEqual(rtn, ('300.2.3.4', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('300.2.3.4', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4(minip='1.2.3.4', maxip='1.2.3.4')('1.2.3.4')
|
||||
self.assertEqual(rtn, ('1.2.3.4', None))
|
||||
rtn = IS_IPV4(minip='1.2.3.5', maxip='1.2.3.9', error_message='bad ip')('1.2.3.4')
|
||||
@@ -382,41 +382,41 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IPV4(maxip='1.2.3.4', invert=True)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', None))
|
||||
rtn = IS_IPV4(maxip='1.2.3.4', invert=True)('1.2.3.4')
|
||||
self.assertEqual(rtn, ('1.2.3.4', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('1.2.3.4', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4(is_localhost=True)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', None))
|
||||
rtn = IS_IPV4(is_localhost=True)('1.2.3.4')
|
||||
self.assertEqual(rtn, ('1.2.3.4', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('1.2.3.4', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4(is_localhost=False)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'Enter valid IPv4 address'))
|
||||
rtn = IS_IPV4(maxip='100.0.0.0', is_localhost=True)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'enter valid IPv4 address'))
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'Enter valid IPv4 address'))
|
||||
|
||||
def test_IS_IPV6(self):
|
||||
rtn = IS_IPV6()('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPV6()('192.168.1.1')
|
||||
self.assertEqual(rtn, ('192.168.1.1', 'enter valid IPv6 address'))
|
||||
self.assertEqual(rtn, ('192.168.1.1', 'Enter valid IPv6 address'))
|
||||
rtn = IS_IPV6(error_message='bad ip')('192.168.1.1')
|
||||
self.assertEqual(rtn, ('192.168.1.1', 'bad ip'))
|
||||
rtn = IS_IPV6(is_link_local=True)('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPV6(is_link_local=False)('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', 'enter valid IPv6 address'))
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', 'Enter valid IPv6 address'))
|
||||
rtn = IS_IPV6(is_link_local=True)('2001::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'enter valid IPv6 address'))
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'Enter valid IPv6 address'))
|
||||
rtn = IS_IPV6(is_multicast=True)('2001::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'enter valid IPv6 address'))
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'Enter valid IPv6 address'))
|
||||
rtn = IS_IPV6(is_multicast=True)('ff00::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('ff00::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPV6(is_routeable=True)('2001::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPV6(is_routeable=True)('ff00::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('ff00::126c:8ffa:fe22:b3af', 'enter valid IPv6 address'))
|
||||
self.assertEqual(rtn, ('ff00::126c:8ffa:fe22:b3af', 'Enter valid IPv6 address'))
|
||||
rtn = IS_IPV6(subnets='2001::/32')('2001::8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPV6(subnets='fb00::/8')('2001::8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', 'enter valid IPv6 address'))
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', 'Enter valid IPv6 address'))
|
||||
rtn = IS_IPV6(subnets=['fc00::/8','2001::/32'])('2001::8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPV6(subnets='invalidsubnet')('2001::8ffa:fe22:b3af')
|
||||
@@ -430,19 +430,19 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IPADDRESS()('255.255.255.255')
|
||||
self.assertEqual(rtn, ('255.255.255.255', None))
|
||||
rtn = IS_IPADDRESS()('192.168.1.5 ')
|
||||
self.assertEqual(rtn, ('192.168.1.5 ', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('192.168.1.5 ', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('192.168.1.1.5')
|
||||
self.assertEqual(rtn, ('192.168.1.1.5', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('192.168.1.1.5', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('123.123')
|
||||
self.assertEqual(rtn, ('123.123', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('123.123', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('1111.2.3.4')
|
||||
self.assertEqual(rtn, ('1111.2.3.4', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('1111.2.3.4', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('0111.2.3.4')
|
||||
self.assertEqual(rtn, ('0111.2.3.4', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('0111.2.3.4', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('256.2.3.4')
|
||||
self.assertEqual(rtn, ('256.2.3.4', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('256.2.3.4', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('300.2.3.4')
|
||||
self.assertEqual(rtn, ('300.2.3.4', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('300.2.3.4', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(minip='192.168.1.0', maxip='192.168.1.255')('192.168.1.100')
|
||||
self.assertEqual(rtn, ('192.168.1.100', None))
|
||||
rtn = IS_IPADDRESS(minip='1.2.3.5', maxip='1.2.3.9', error_message='bad ip')('1.2.3.4')
|
||||
@@ -450,17 +450,17 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IPADDRESS(maxip='1.2.3.4', invert=True)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', None))
|
||||
rtn = IS_IPADDRESS(maxip='192.168.1.4', invert=True)('192.168.1.4')
|
||||
self.assertEqual(rtn, ('192.168.1.4', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('192.168.1.4', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_localhost=True)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', None))
|
||||
rtn = IS_IPADDRESS(is_localhost=True)('192.168.1.10')
|
||||
self.assertEqual(rtn, ('192.168.1.10', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('192.168.1.10', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_localhost=False)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(maxip='100.0.0.0', is_localhost=True)('127.0.0.1')
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('127.0.0.1', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS()('aaa')
|
||||
self.assertEqual(rtn, ('aaa', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('aaa', 'Enter valid IP address'))
|
||||
|
||||
|
||||
rtn = IS_IPADDRESS()('fe80::126c:8ffa:fe22:b3af')
|
||||
@@ -468,31 +468,31 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_IPADDRESS(is_ipv4=False)('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPADDRESS()('fe80::126c:8ffa:fe22:b3af ')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af ', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af ', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_ipv4=True)('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_ipv6=True)('192.168.1.1')
|
||||
self.assertEqual(rtn, ('192.168.1.1', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('192.168.1.1', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_ipv6=True, error_message='bad ip')('192.168.1.1')
|
||||
self.assertEqual(rtn, ('192.168.1.1', 'bad ip'))
|
||||
rtn = IS_IPADDRESS(is_link_local=True)('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPADDRESS(is_link_local=False)('fe80::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('fe80::126c:8ffa:fe22:b3af', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_link_local=True)('2001::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_multicast=True)('2001::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(is_multicast=True)('ff00::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('ff00::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPADDRESS(is_routeable=True)('2001::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::126c:8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPADDRESS(is_routeable=True)('ff00::126c:8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('ff00::126c:8ffa:fe22:b3af', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('ff00::126c:8ffa:fe22:b3af', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(subnets='2001::/32')('2001::8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPADDRESS(subnets='fb00::/8')('2001::8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', 'enter valid IP address'))
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', 'Enter valid IP address'))
|
||||
rtn = IS_IPADDRESS(subnets=['fc00::/8','2001::/32'])('2001::8ffa:fe22:b3af')
|
||||
self.assertEqual(rtn, ('2001::8ffa:fe22:b3af', None))
|
||||
rtn = IS_IPADDRESS(subnets='invalidsubnet')('2001::8ffa:fe22:b3af')
|
||||
@@ -504,17 +504,17 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_LENGTH()('1234567890')
|
||||
self.assertEqual(rtn, ('1234567890', None))
|
||||
rtn = IS_LENGTH(maxsize=5, minsize=0)('1234567890') # too long
|
||||
self.assertEqual(rtn, ('1234567890', 'enter from 0 to 5 characters'))
|
||||
self.assertEqual(rtn, ('1234567890', 'Enter from 0 to 5 characters'))
|
||||
rtn = IS_LENGTH(maxsize=50, minsize=20)('1234567890') # too short
|
||||
self.assertEqual(rtn, ('1234567890', 'enter from 20 to 50 characters'))
|
||||
self.assertEqual(rtn, ('1234567890', 'Enter from 20 to 50 characters'))
|
||||
rtn = IS_LENGTH()(None)
|
||||
self.assertEqual(rtn, (None, None))
|
||||
rtn = IS_LENGTH(minsize=0)(None)
|
||||
self.assertEqual(rtn, (None, None))
|
||||
rtn = IS_LENGTH(minsize=1)(None)
|
||||
self.assertEqual(rtn, (None, 'enter from 1 to 255 characters'))
|
||||
self.assertEqual(rtn, (None, 'Enter from 1 to 255 characters'))
|
||||
rtn = IS_LENGTH(minsize=1)([])
|
||||
self.assertEqual(rtn, ([], 'enter from 1 to 255 characters'))
|
||||
self.assertEqual(rtn, ([], 'Enter from 1 to 255 characters'))
|
||||
rtn = IS_LENGTH(minsize=1)([1])
|
||||
self.assertEqual(rtn, ([1], None))
|
||||
|
||||
@@ -532,7 +532,7 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_MATCH('hell.*', strict=False)('hello')
|
||||
self.assertEqual(rtn, ('hello', None))
|
||||
rtn = IS_MATCH('hello')('shello')
|
||||
self.assertEqual(rtn, ('shello', 'invalid expression'))
|
||||
self.assertEqual(rtn, ('shello', 'Invalid expression'))
|
||||
rtn = IS_MATCH('hello', search=True)('shello')
|
||||
self.assertEqual(rtn, ('shello', None))
|
||||
rtn = IS_MATCH('hello', search=True, strict=False)('shellox')
|
||||
@@ -540,13 +540,13 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_MATCH('.*hello.*', search=True, strict=False)('shellox')
|
||||
self.assertEqual(rtn, ('shellox', None))
|
||||
rtn = IS_MATCH('.+')('')
|
||||
self.assertEqual(rtn, ('', 'invalid expression'))
|
||||
self.assertEqual(rtn, ('', 'Invalid expression'))
|
||||
rtn = IS_MATCH('hell', strict=True)('hellas')
|
||||
self.assertEqual(rtn, ('hellas', 'invalid expression'))
|
||||
self.assertEqual(rtn, ('hellas', 'Invalid expression'))
|
||||
rtn = IS_MATCH('hell$', strict=True)('hellas')
|
||||
self.assertEqual(rtn, ('hellas', 'invalid expression'))
|
||||
self.assertEqual(rtn, ('hellas', 'Invalid expression'))
|
||||
rtn = IS_MATCH(u'hell', is_unicode=True)('àòè')
|
||||
self.assertEqual(rtn, ('\xc3\xa0\xc3\xb2\xc3\xa8', 'invalid expression'))
|
||||
self.assertEqual(rtn, ('\xc3\xa0\xc3\xb2\xc3\xa8', 'Invalid expression'))
|
||||
rtn = IS_MATCH(u'hell', is_unicode=True)(u'hell')
|
||||
self.assertEqual(rtn, (u'hell', None))
|
||||
|
||||
@@ -555,7 +555,7 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_EQUAL_TO('aaa')('aaa')
|
||||
self.assertEqual(rtn, ('aaa', None))
|
||||
rtn = IS_EQUAL_TO('aaa')('aab')
|
||||
self.assertEqual(rtn, ('aab', 'no match'))
|
||||
self.assertEqual(rtn, ('aab', 'No match'))
|
||||
|
||||
def test_IS_NOT_EMPTY(self):
|
||||
rtn = IS_NOT_EMPTY()(1)
|
||||
@@ -567,19 +567,19 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_NOT_EMPTY()(' x ')
|
||||
self.assertEqual(rtn, ('x', None))
|
||||
rtn = IS_NOT_EMPTY()(None)
|
||||
self.assertEqual(rtn, (None, 'enter a value'))
|
||||
self.assertEqual(rtn, (None, 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY()('')
|
||||
self.assertEqual(rtn, ('', 'enter a value'))
|
||||
self.assertEqual(rtn, ('', 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY()(' ')
|
||||
self.assertEqual(rtn, ('', 'enter a value'))
|
||||
self.assertEqual(rtn, ('', 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY()(' \n\t')
|
||||
self.assertEqual(rtn, ('', 'enter a value'))
|
||||
self.assertEqual(rtn, ('', 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY()([])
|
||||
self.assertEqual(rtn, ([], 'enter a value'))
|
||||
self.assertEqual(rtn, ([], 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY(empty_regex='def')('def')
|
||||
self.assertEqual(rtn, ('', 'enter a value'))
|
||||
self.assertEqual(rtn, ('', 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY(empty_regex='de[fg]')('deg')
|
||||
self.assertEqual(rtn, ('', 'enter a value'))
|
||||
self.assertEqual(rtn, ('', 'Enter a value'))
|
||||
rtn = IS_NOT_EMPTY(empty_regex='def')('abc')
|
||||
self.assertEqual(rtn, ('abc', None))
|
||||
|
||||
@@ -621,7 +621,7 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_SLUG(check=False)('a bc')
|
||||
self.assertEqual(rtn, ('a-bc', None))
|
||||
rtn = IS_SLUG(check=True)('a bc')
|
||||
self.assertEqual(rtn, ('a bc', 'must be slug'))
|
||||
self.assertEqual(rtn, ('a bc', 'Must be slug'))
|
||||
|
||||
def test_IS_STRONG(self):
|
||||
rtn = IS_STRONG(es=True)('Abcd1234')
|
||||
@@ -680,17 +680,17 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_TIME()('5:30 pm')
|
||||
self.assertEqual(rtn, (datetime.time(17, 30), None))
|
||||
rtn = IS_TIME()('5:30 whatever')
|
||||
self.assertEqual(rtn, ('5:30 whatever', 'enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
self.assertEqual(rtn, ('5:30 whatever', 'Enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
rtn = IS_TIME()('5:30 20')
|
||||
self.assertEqual(rtn, ('5:30 20', 'enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
self.assertEqual(rtn, ('5:30 20', 'Enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
rtn = IS_TIME()('24:30')
|
||||
self.assertEqual(rtn, ('24:30', 'enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
self.assertEqual(rtn, ('24:30', 'Enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
rtn = IS_TIME()('21:60')
|
||||
self.assertEqual(rtn, ('21:60', 'enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
self.assertEqual(rtn, ('21:60', 'Enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
rtn = IS_TIME()('21:30::')
|
||||
self.assertEqual(rtn, ('21:30::', 'enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
self.assertEqual(rtn, ('21:30::', 'Enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
rtn = IS_TIME()('')
|
||||
self.assertEqual(rtn, ('', 'enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
self.assertEqual(rtn, ('', 'Enter time as hh:mm:ss (seconds, am, pm optional)'))
|
||||
|
||||
def test_IS_UPPER(self):
|
||||
rtn = IS_UPPER()('abc')
|
||||
@@ -716,7 +716,7 @@ class TestValidators(unittest.TestCase):
|
||||
rtn = IS_JSON()('{"a": 100}')
|
||||
self.assertEqual(rtn, ({u'a': 100}, None))
|
||||
rtn = IS_JSON()('spam1234')
|
||||
self.assertEqual(rtn, ('spam1234', 'invalid json'))
|
||||
self.assertEqual(rtn, ('spam1234', 'Invalid json'))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
@@ -142,7 +142,7 @@ class TestWeb(LiveTest):
|
||||
assert(s.headers['cache-control'].startswith('max-age'))
|
||||
|
||||
def testSoap(self):
|
||||
# test soap server implementation
|
||||
# test soap server implementation
|
||||
from gluon.contrib.pysimplesoap.client import SoapClient, SoapFault
|
||||
url = 'http://127.0.0.1:8000/examples/soap_examples/call/soap?WSDL'
|
||||
client = SoapClient(wsdl=url)
|
||||
@@ -155,7 +155,7 @@ class TestWeb(LiveTest):
|
||||
ret = client.Division(a=3, b=0)
|
||||
except SoapFault, sf:
|
||||
# verify the exception value is ok
|
||||
assert(sf.faultstring == "float division by zero")
|
||||
# assert(sf.faultstring == "float division by zero") # true only in 2.7
|
||||
assert(sf.faultcode == "Server.ZeroDivisionError")
|
||||
|
||||
# store sent and received xml for low level test
|
||||
@@ -171,7 +171,7 @@ class TestWeb(LiveTest):
|
||||
# check internal server error returned (issue 153)
|
||||
assert(s.status == 500)
|
||||
assert(s.text == xml_response)
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
||||
Reference in New Issue
Block a user