testing simple validators devel
authorSandro Knauß <knauss@netzguerilla.net>
Wed, 08 Feb 2012 14:19:46 +0100
branchdevel
changeset 137 e0073c462563
parent 136 ca926774e16c
child 138 57c4450c8ba6
testing simple validators
iro/validate.py
tests/validate.py
--- a/iro/validate.py	Wed Feb 08 14:19:09 2012 +0100
+++ b/iro/validate.py	Wed Feb 08 14:19:46 2012 +0100
@@ -47,7 +47,7 @@
         raise ValidateException(field=field)
     if maxlength and len(value)>maxlength:
         raise ValidateException(field=field)
-    return value
+    return value.lower()
 
 def vTel(value,field):
     '''Validator for Telefonnumbers'''
@@ -87,6 +87,7 @@
         if local == "":
             ret.append(v)
             continue
+    
         if local.startswith(".") or local.endswith("."):
             raise InvalidMail(v,field)
         unquote = True
--- /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)