--- a/iro/validate.py Tue Feb 14 21:31:06 2012 +0100
+++ b/iro/validate.py Wed Feb 15 12:55:56 2012 +0100
@@ -54,7 +54,9 @@
ret = []
for v in value:
try:
- ret.append(Telnumber(v))
+ tel=Telnumber(v)
+ if tel not in ret:
+ ret.append(tel)
except InvalidTel, e:
e.field=field
raise e
@@ -114,7 +116,8 @@
i += 1
if c%2 == 0 and c > 1: #no single quote allowed
raise InvalidMail(v,field)
- ret.append(v)
+ if v not in ret:
+ ret.append(v)
return ret
def validate(kwd,func, need=True,*args,**kargs):
--- a/tests/email_validate.py Tue Feb 14 21:31:06 2012 +0100
+++ b/tests/email_validate.py Wed Feb 15 12:55:56 2012 +0100
@@ -51,3 +51,7 @@
'''invalid Domainname'''
with self.assertRaises(InvalidMail) as e:
vEmail(['x@&.de'],None)
+
+ def testDoubles(self):
+ self.assertEqual(vEmail(['x@test.de','x@test.de'],None),["x@test.de"])
+
--- a/tests/telnumber.py Tue Feb 14 21:31:06 2012 +0100
+++ b/tests/telnumber.py Wed Feb 15 12:55:56 2012 +0100
@@ -27,6 +27,12 @@
vTel(['01234']+numbers, None)
self.failUnlessEqual(e.exception.number,numbers[0])
+ def testDoubles(self):
+ ret = vTel(["0123/456(78)","+4912345678","004912345678"], None)
+ x=[Telnumber('+4912345678')]
+ self.failUnlessEqual(ret,x)
+
+
def equalNumber(self, tel1, tel2):
self.failUnlessEqual(tel1.number, tel2.number)
self.failUnlessEqual(tel1.land, tel2.land)