tests/validate.py
branchdevel
changeset 137 e0073c462563
child 178 ee4a6eb5a34b
equal deleted inserted replaced
136:ca926774e16c 137:e0073c462563
       
     1 import unittest
       
     2 
       
     3 from iro.validate import vBool, vInteger, vHash
       
     4 from iro.error import ValidateException
       
     5 
       
     6 class testValidators(unittest.TestCase):
       
     7     '''test for simple validators'''
       
     8 
       
     9     def testBool(self):
       
    10         self.assertEqual(vBool(True,None),True)
       
    11         self.assertEqual(vBool(1,None),True)
       
    12         self.assertEqual(vBool("true",None),True)
       
    13         self.assertEqual(vBool("True",None),True)
       
    14         self.assertEqual(vBool("TRUE",None),True)
       
    15 
       
    16         self.assertEqual(vBool(False,None),False)
       
    17         self.assertEqual(vBool(0,None),False)
       
    18         self.assertEqual(vBool("false",None),False)
       
    19         self.assertEqual(vBool("False",None),False)
       
    20         self.assertEqual(vBool("FALSE",None),False)
       
    21 
       
    22         with self.assertRaises(ValidateException) as e:
       
    23             vBool("TRue","test")
       
    24         self.assertEqual(e.exception.msg,"test is not boolean")
       
    25 
       
    26     def testInteger(self):
       
    27         self.assertEqual(vInteger(123,None),123)
       
    28         self.assertEqual(vInteger("123",None),123)
       
    29         self.assertEqual(vInteger("-123",None),-123)
       
    30 
       
    31         with self.assertRaises(ValidateException):
       
    32             vInteger("a123",None)
       
    33 
       
    34     def testIntegerLimits(self):
       
    35         self.assertEqual(vInteger(10,None,maxv=10),10)
       
    36         with self.assertRaises(ValidateException):
       
    37             vInteger(11,None,maxv=10)
       
    38 
       
    39         self.assertEqual(vInteger(4,None,minv=4),4)
       
    40         with self.assertRaises(ValidateException):
       
    41             vInteger(3,None,minv=4)
       
    42 
       
    43     def testIntegerNoneAllowed(self):
       
    44         self.assertEqual(vInteger(None,None,none_allowed=True),None)
       
    45         self.assertEqual(vInteger('',None,none_allowed=True),None)
       
    46 
       
    47         with self.assertRaises(ValidateException):
       
    48             vInteger("",None)
       
    49 
       
    50         with self.assertRaises(ValidateException):
       
    51             vInteger(None,None)
       
    52 
       
    53     def testHash(self):
       
    54         self.assertEqual(vHash("0123456789abcdef",None),"0123456789abcdef")
       
    55         self.assertEqual(vHash("0123456789ABCDEF",None),"0123456789abcdef")
       
    56         self.assertEqual(vHash("F",None),"f")
       
    57         self.assertEqual(vHash("",None),'')
       
    58 
       
    59         with self.assertRaises(ValidateException):
       
    60             vHash("GHIJKL",None)
       
    61         
       
    62     def testHashLimits(self):
       
    63         self.assertEqual(vHash("F",None,minlength=1),"f")
       
    64         with self.assertRaises(ValidateException):
       
    65             vHash("",None, minlength=1)
       
    66 
       
    67         self.assertEqual(vHash("Fa",None,maxlength=2),"fa")
       
    68         with self.assertRaises(ValidateException):
       
    69             vHash("123",None, maxlength=1)