# HG changeset patch # User Sandro Knauß # Date 1328707186 -3600 # Node ID e0073c462563791ff1236628f5a72552054a5878 # Parent ca926774e16cbc51d4e77cfb4331622c20f7ebea testing simple validators diff -r ca926774e16c -r e0073c462563 iro/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 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)