diff -r ca926774e16c -r e0073c462563 tests/validate.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/validate.py Wed Feb 08 14:19:46 2012 +0100 @@ -0,0 +1,69 @@ +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) + + with self.assertRaises(ValidateException) as e: + vBool("TRue","test") + self.assertEqual(e.exception.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) + + with self.assertRaises(ValidateException): + vInteger("a123",None) + + def testIntegerLimits(self): + self.assertEqual(vInteger(10,None,maxv=10),10) + with self.assertRaises(ValidateException): + vInteger(11,None,maxv=10) + + self.assertEqual(vInteger(4,None,minv=4),4) + with self.assertRaises(ValidateException): + vInteger(3,None,minv=4) + + def testIntegerNoneAllowed(self): + self.assertEqual(vInteger(None,None,none_allowed=True),None) + self.assertEqual(vInteger('',None,none_allowed=True),None) + + with self.assertRaises(ValidateException): + vInteger("",None) + + with 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),'') + + with self.assertRaises(ValidateException): + vHash("GHIJKL",None) + + def testHashLimits(self): + self.assertEqual(vHash("F",None,minlength=1),"f") + with self.assertRaises(ValidateException): + vHash("",None, minlength=1) + + self.assertEqual(vHash("Fa",None,maxlength=2),"fa") + with self.assertRaises(ValidateException): + vHash("123",None, maxlength=1)