Refactoring tests.validate now use twisted.trial.unittests
This allows to test the validate decorator.
from twisted.trial import unittest
from iro.validate import vBool, vInteger, vHash
from iro.error import ValidateException
class testValidators(unittest.TestCase):
'''test for simple validators'''
def testBool(self):
self.assertEqual(vBool(True,None),True)
self.assertEqual(vBool(1,None),True)
self.assertEqual(vBool("true",None),True)
self.assertEqual(vBool("True",None),True)
self.assertEqual(vBool("TRUE",None),True)
self.assertEqual(vBool(False,None),False)
self.assertEqual(vBool(0,None),False)
self.assertEqual(vBool("false",None),False)
self.assertEqual(vBool("False",None),False)
self.assertEqual(vBool("FALSE",None),False)
e = self.assertRaises(ValidateException, vBool, "TRue","test")
self.assertEqual(e.msg,"test is not boolean")
def testInteger(self):
self.assertEqual(vInteger(123,None),123)
self.assertEqual(vInteger("123",None),123)
self.assertEqual(vInteger("-123",None),-123)
self.assertRaises(ValidateException, vInteger, "a123",None)
def testIntegerLimits(self):
self.assertEqual(vInteger(10,None,maxv=10),10)
self.assertRaises(ValidateException, vInteger, 11, None, maxv=10)
self.assertEqual(vInteger(4,None,minv=4),4)
self.assertRaises(ValidateException, vInteger, 3, None, minv=4)
self.assertRaises(ValidateException, vInteger, -1, None, minv=0)
self.assertRaises(ValidateException, vInteger, 1, None, maxv=0)
def testIntegerNoneAllowed(self):
self.assertEqual(vInteger(None,None,none_allowed=True),None)
self.assertEqual(vInteger('',None,none_allowed=True),None)
self.assertRaises(ValidateException, vInteger, "", None)
self.assertRaises(ValidateException, vInteger, None, None)
def testHash(self):
self.assertEqual(vHash("0123456789abcdef",None),"0123456789abcdef")
self.assertEqual(vHash("0123456789ABCDEF",None),"0123456789abcdef")
self.assertEqual(vHash("F",None),"f")
self.assertEqual(vHash("",None),'')
self.assertRaises(ValidateException, vHash, "GHIJKL", None)
def testHashLimits(self):
self.assertEqual(vHash("F",None,minlength=1),"f")
self.assertRaises(ValidateException, vHash, "", None, minlength=1)
self.assertEqual(vHash("Fa",None,maxlength=2),"fa")
self.assertRaises(ValidateException, vHash, "123", None, maxlength=1)