# HG changeset patch # User Sandro Knauß # Date 1330012412 -3600 # Node ID 8a5be61f34c501d17536529184a9333e471b7f55 # Parent 55ab949cf0f8bbc17a159cbff65e07467bb34c1b email validator can now handle strings and lists diff -r 55ab949cf0f8 -r 8a5be61f34c5 iro/validate.py --- a/iro/validate.py Thu Feb 23 16:52:06 2012 +0100 +++ b/iro/validate.py Thu Feb 23 16:53:32 2012 +0100 @@ -3,6 +3,7 @@ import re from decorator import decorator from inspect import getcallargs +import types from .error import ValidateException, InvalidTel, InvalidMail from .telnumber import Telnumber @@ -76,6 +77,10 @@ this\\ still\\"not\\allowed@example.com ''' ret = [] + str_=False + if type(value) is types.StringType: + str_=True + value=[value] for v in value: parts= re.match(r'^(.*)@(.+?)$',v) if not parts: @@ -118,6 +123,8 @@ raise InvalidMail(v,field) if v not in ret: ret.append(v) + if str_: + ret=ret[0] return ret def validate(kwd,func, need=True,*args,**kargs): diff -r 55ab949cf0f8 -r 8a5be61f34c5 tests/email_validate.py --- a/tests/email_validate.py Thu Feb 23 16:52:06 2012 +0100 +++ b/tests/email_validate.py Thu Feb 23 16:53:32 2012 +0100 @@ -49,8 +49,10 @@ def testInvalidDomain(self): '''invalid Domainname''' - with self.assertRaises(InvalidMail) as e: + with self.assertRaises(InvalidMail): vEmail(['x@&.de'],None) + def testString(self): + self.assertEqual(vEmail('x@test.de', None),"x@test.de") def testDoubles(self): self.assertEqual(vEmail(['x@test.de','x@test.de'],None),["x@test.de"])