tests/xmlrpc.py
branchdevel
changeset 130 05e599aa83c3
parent 128 1a3ebdd3bdaf
child 131 c51c3e8c3ec0
equal deleted inserted replaced
129:d6704178a18f 130:05e599aa83c3
   180 
   180 
   181         with self.assertRaises(Fault) as fault:
   181         with self.assertRaises(Fault) as fault:
   182             self.__rpc2().telnumber(['01234']+invalid)
   182             self.__rpc2().telnumber(['01234']+invalid)
   183         exc = fault.exception
   183         exc = fault.exception
   184         self.failUnlessEqual(exc.faultCode, 701)
   184         self.failUnlessEqual(exc.faultCode, 701)
   185         self.failUnlessEqual(exc.faultString, "No valid telnumber: '%s'"%invalid[0])
   185         self.failUnlessEqual(exc.faultString, "No valid telnumber: '%s'" % invalid[0])
   186 
   186 
   187 
   187 
   188     def testVaildEmail(self):
   188     def testVaildEmail(self):
   189         '''test vaild email adresses (got from wikipedia)'''
   189         '''test vaild email adresses (got from wikipedia)'''
   190         validmails=["niceandsimple@example.com",
   190         validmails=["niceandsimple@example.com"]
   191                 "simplewith+symbol@example.com",
   191         self.failUnlessEqual(self.__rpc2().email(validmails),True)
   192                 'a.little.unusual@example.com',
       
   193                 'a.little.more.unusual@dept.example.com',
       
   194                 '@[10.10.10.10]',
       
   195                 '@[1.1.1.1]',
       
   196                 '@[200.100.100.100]',
       
   197                 'user@[2001:db8:1ff::a0b:dbd0]',
       
   198                 '"much.more\ unusual"@example.com',
       
   199                 '"very.unusual.@.unusual.com"@example.com',
       
   200                 '"very.(),:;<>[]\\".VERY.\\"very@\\\ \\"very\\".unusual"@strange.example.com',
       
   201                 "!#$%&'*+-/=?^_`{}|~@example.org",
       
   202                 '"()<>[]:;@,\\\"!#$%&\'*+-/=?^_`{}| ~  ? ^_`{}|~."@example.org',
       
   203                 '""@example.org']
       
   204         
       
   205         for num in validmails:
       
   206             self.failUnlessEqual(self.__rpc2().email([num]),True)
       
   207     
   192     
   208     def testInvaildEmail(self):
   193     def testInvaildEmail(self):
   209         '''test invaild email adresses (got from wikipedia)'''
   194         '''test invaild email adresses (got from wikipedia)'''
   210         invalid=["Abc.example.com",  # (an @ character must separate the local and domain parts)
   195         invalid=["Abc.example.com",]
   211                 "Abc.@example.com",          # (character dot(.) is last in local part)
   196         with self.assertRaises(Fault) as fault:
   212                 "Abc..123@example.com",      # (character dot(.) is double)
   197             self.__rpc2().email(invalid)
   213                 "A@b@c@example.com",         # (only one @ is allowed outside quotation marks)
   198         exc = fault.exception
   214                 '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)
   199         self.failUnlessEqual(exc.faultCode, 702)
   215                 'just"not"right@example.com',           # (quoted strings must be dot separated, or the only element making up the local-part)
   200         self.failUnlessEqual(exc.faultString, "No valid email: '%s'" % invalid[0])
   216                 'thisis."notallowed@example.com',      # (spaces, quotes, and backslashes may only exist when within quoted strings and preceded by a slash)
       
   217                 'this\\ still\\"not\\allowed@example.com',   # (even if escaped (preceded by a backslash), spaces, quotes, and backslashes must still be contained by quotes)
       
   218                 ]
       
   219 
       
   220         for number in invalid:
       
   221             with self.assertRaises(Fault) as fault:
       
   222                 self.__rpc2().email([number])
       
   223             exc = fault.exception
       
   224             self.failUnlessEqual(exc.faultCode, 702)
       
   225             self.failUnlessEqual(exc.faultString, "No valid email: '%s'"%number)
       
   226     
   201     
   227     def testBill(self):
   202     def testBill(self):
   228         '''test bill function'''
   203         '''test bill function'''
   229         apikey='abcdef123456789'
   204         apikey='abcdef123456789'
   230         with WithSession(md.engine, autocommit=True) as session:
   205         with WithSession(md.engine, autocommit=True) as session: