tests/validate.py
branchdevel
changeset 137 e0073c462563
child 178 ee4a6eb5a34b
--- /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)