--- a/tests/xmlrpc.py Mon Jan 30 06:51:28 2012 +0100
+++ b/tests/xmlrpc.py Mon Jan 30 06:52:46 2012 +0100
@@ -69,7 +69,7 @@
def testListMethods(self):
'''list of all offical Methods, that can be executed'''
ret=self.__rpc2().listMethods()
- self.failUnlessEqual(ret, ['listMethods', 'status', 'stop', 'sms', 'fax', 'mail', 'routes', 'defaultRoute', 'statistic'])
+ self.failUnlessEqual(ret, ['listMethods', 'status', 'stop', 'sms', 'fax', 'mail', 'routes', 'defaultRoute', 'statistic', 'telnumber','email'])
def testStatus(self):
''' test the status function'''
@@ -171,8 +171,64 @@
session.add(u)
self.failUnlessEqual(self.__rpc2().defaultRoute('abcdef123456789','sms'),['sipgate_basic'])
+ def testTelnumbers(self):
+ '''test the telefon validator'''
+ self.failUnlessEqual(self.__rpc2().telnumber(["0123/456(78)","+4912346785433","00123435456-658"]),True)
+ numbers=['xa','+1','1-23',';:+0','0123']
+ for number in numbers:
+ with self.assertRaises(Fault) as fault:
+ self.__rpc2().telnumber([number])
+ exc = fault.exception
+ self.failUnlessEqual(exc.faultCode, 701)
+ self.failUnlessEqual(exc.faultString, "No valid telnumber: '%s'"%number)
+
+ with self.assertRaises(Fault) as fault:
+ self.__rpc2().telnumber(['01234']+numbers)
+ exc = fault.exception
+ self.failUnlessEqual(exc.faultCode, 701)
+ self.failUnlessEqual(exc.faultString, "No valid telnumber: '%s'"%numbers[0])
+ def testVaildEmail(self):
+ '''test vaild email adresses (got from wikipedia)'''
+ validmails=["niceandsimple@example.com",
+ "simplewith+symbol@example.com",
+ 'a.little.unusual@example.com',
+ 'a.little.more.unusual@dept.example.com',
+ '@[10.10.10.10]',
+ '@[1.1.1.1]',
+ '@[200.100.100.100]',
+ 'user@[2001:db8:1ff::a0b:dbd0]',
+ '"much.more\ unusual"@example.com',
+ '"very.unusual.@.unusual.com"@example.com',
+ '"very.(),:;<>[]\\".VERY.\\"very@\\\ \\"very\\".unusual"@strange.example.com',
+ "!#$%&'*+-/=?^_`{}|~@example.org",
+ '"()<>[]:;@,\\\"!#$%&\'*+-/=?^_`{}| ~ ? ^_`{}|~."@example.org',
+ '""@example.org']
+
+ for num in validmails:
+ self.failUnlessEqual(self.__rpc2().email([num]),True)
+
+ def testInvaildEmail(self):
+ '''test invaild email adresses (got from wikipedia)'''
+ invalid=["Abc.example.com", # (an @ character must separate the local and domain parts)
+ "Abc.@example.com", # (character dot(.) is last in local part)
+ "Abc..123@example.com", # (character dot(.) is double)
+ "A@b@c@example.com", # (only one @ is allowed outside quotation marks)
+ 'a"b(c)d,e:f;g<h>i[j\k]l@example.com', # (none of the special characters in this local part is allowed outside quotation marks)
+ 'just"not"right@example.com', # (quoted strings must be dot separated, or the only element making up the local-part)
+ 'thisis."notallowed@example.com', # (spaces, quotes, and backslashes may only exist when within quoted strings and preceded by a slash)
+ 'this\\ still\\"not\\allowed@example.com', # (even if escaped (preceded by a backslash), spaces, quotes, and backslashes must still be contained by quotes)
+ ]
+
+ for number in invalid:
+ with self.assertRaises(Fault) as fault:
+ self.__rpc2().email([number])
+ exc = fault.exception
+ self.failUnlessEqual(exc.faultCode, 702)
+ self.failUnlessEqual(exc.faultString, "No valid email: '%s'"%number)
+
+
def startReactor(engine):
"""starts the Rector with a special debug Clild, so that the reactor can be stopped remotly. """
from twisted.internet import reactor