tests/validate.py
branchdevel
changeset 196 ee2c051fbe3f
parent 194 0dad11389eec
equal deleted inserted replaced
195:74d12f301a5d 196:ee2c051fbe3f
     1 from twisted.trial import unittest
     1 from twisted.trial import unittest
       
     2 from mock import Mock
     2 
     3 
     3 from iro.validate import vBool, vInteger, vHash
     4 from iro.validate import vBool, vInteger, vHash, validate
     4 from iro.error import ValidateException
     5 from iro.error import ValidateException
     5 
     6 
     6 class testValidators(unittest.TestCase):
     7 class testValidators(unittest.TestCase):
     7     '''test for simple validators'''
     8     '''test for simple validators'''
     8 
     9 
    58         self.assertEqual(vHash("F",None,minlength=1),"f")
    59         self.assertEqual(vHash("F",None,minlength=1),"f")
    59         self.assertRaises(ValidateException, vHash, "", None, minlength=1)
    60         self.assertRaises(ValidateException, vHash, "", None, minlength=1)
    60 
    61 
    61         self.assertEqual(vHash("Fa",None,maxlength=2),"fa")
    62         self.assertEqual(vHash("Fa",None,maxlength=2),"fa")
    62         self.assertRaises(ValidateException, vHash, "123", None, maxlength=1)
    63         self.assertRaises(ValidateException, vHash, "123", None, maxlength=1)
       
    64 
       
    65     
       
    66     def testValidate(self):
       
    67         f = Mock()
       
    68         f.return_value = "valid"
       
    69         @validate("t",f,True,1,2,3,4,k=5)
       
    70         def g(u=False, t="bla"):
       
    71             return t
       
    72         d = g(t="uhuhu")
       
    73         def r(t):
       
    74             f.called_once_with("uhuhu","t",1,2,3,4,k=5)
       
    75             self.assertEqual(t,"valid")
       
    76         d.addCallback(r)
       
    77         return d
       
    78 
       
    79     def testValidateMissingNeed(self):
       
    80         f = Mock()
       
    81         @validate("t",f,True,1,2,3,4,k=5)
       
    82         def g(u, t="buuh"):
       
    83             return t
       
    84         e = self.assertRaises(ValidateException, g, u="uhuhu", t = None)
       
    85         self.assertEqual(str(e),'700:t is nessasary')
       
    86 
       
    87     def testValidateMissingNeedNonExplicit(self):
       
    88         f = Mock()
       
    89         @validate("t",f,True,1,2,3,4,k=5)
       
    90         def g(u, **k):
       
    91             return k["t"]
       
    92         e = self.assertRaises(ValidateException, g, u="uhuhu")
       
    93         self.assertEqual(str(e),'700:t is nessasary')
       
    94 
       
    95 
       
    96     def testValidateMissingNeed2(self):
       
    97         f = Mock()
       
    98         f.return_value = "valid"
       
    99         @validate("t",f,True,1,2,3,4,k=5)
       
   100         def g(u, t="buuh"):
       
   101             return t
       
   102 
       
   103         d = g(True)
       
   104 
       
   105         def r(t):
       
   106             f.called_once_with("buuh","t",1,2,3,4,k=5)
       
   107             self.assertEqual(t,"valid")
       
   108         d.addCallback(r)
       
   109         return d
       
   110 
       
   111     def testvalidateNoNeed(self):
       
   112         f = Mock()
       
   113         f.return_value = "valid"
       
   114         @validate("t",f,False,1,2,3,4,k=5)
       
   115         def g(u, t="buuh"):
       
   116             return t
       
   117         d = g("uhu")
       
   118         def r(t):
       
   119             self.assertEqual(f.called,True)
       
   120             self.assertEqual(t,"valid")
       
   121         d.addCallback(r)
       
   122         return d
       
   123 
       
   124     def testvalidateNoNeed2(self):
       
   125         f = Mock()
       
   126         f.return_value = "valid"
       
   127         @validate("t",f,False,1,2,3,4,k=5)
       
   128         def g(u, **k):
       
   129             return k["t"]
       
   130         d = g("uhu")
       
   131         def r(t):
       
   132             self.assertEqual(f.called,False)
       
   133             self.assertEqual(t,None)
       
   134         d.addCallback(r)
       
   135         return d