Merge branch 'master' of github.com:web2py/web2py

This commit is contained in:
mdipierro
2015-05-03 16:42:42 -05:00
2 changed files with 7 additions and 2 deletions
+4 -2
View File
@@ -275,7 +275,7 @@ class List(list):
instead of `IndexOutOfBounds`. instead of `IndexOutOfBounds`.
""" """
def __call__(self, i, default=None, cast=None, otherwise=None): def __call__(self, i, default=DEFAULT, cast=None, otherwise=None):
"""Allows to use a special syntax for fast-check of `request.args()` """Allows to use a special syntax for fast-check of `request.args()`
validity validity
Args: Args:
@@ -291,7 +291,9 @@ class List(list):
request.args(0,default=0,cast=int,otherwise='http://error_url') request.args(0,default=0,cast=int,otherwise='http://error_url')
request.args(0,default=0,cast=int,otherwise=lambda:...) request.args(0,default=0,cast=int,otherwise=lambda:...)
""" """
value = self[i] or default value = self[i]
if not value and default is not DEFAULT:
value, cast, otherwise = default, False, False
try: try:
if cast: if cast:
value = cast(value) value = cast(value)
+3
View File
@@ -138,6 +138,9 @@ class TestList(unittest.TestCase):
self.assertEqual(a(3, cast=int), 1234) self.assertEqual(a(3, cast=int), 1234)
a.append('x') a.append('x')
self.assertRaises(HTTP, a, 4, cast=int) self.assertRaises(HTTP, a, 4, cast=int)
b = List()
self.assertEqual(b(0, cast=int, default=None), None)
self.assertEqual(b(0, cast=int, default=None, otherwise='something'), None)
if __name__ == '__main__': if __name__ == '__main__':