tests/xmlrpc.py
branchdevel
changeset 125 19b3f383c9ce
parent 120 7bde35ad89e0
child 126 1ac2439a68b5
equal deleted inserted replaced
124:6efcdf7e2d62 125:19b3f383c9ce
     7 import shutil
     7 import shutil
     8 
     8 
     9 from iro.model.utils import WithSession
     9 from iro.model.utils import WithSession
    10 from iro.model import POOL_SIZE as DB_POOL_SIZE
    10 from iro.model import POOL_SIZE as DB_POOL_SIZE
    11 
    11 
    12 from iro.model.schema import User, Base, Offer, Userright
    12 from iro.model.schema import User, Base, Offer, Userright, Job
    13 import iro.model.schema as schema
    13 import iro.model.schema as schema
    14 
    14 
    15 from ngdatabase.mysql import Server, createConfig, Database
    15 from ngdatabase.mysql import Server, createConfig, Database
    16 
    16 
    17 from iro.main import runReactor
    17 from iro.main import runReactor
    72         self.failUnlessEqual(ret, ['listMethods', 'status', 'stop', 'sms', 'fax', 'mail', 'routes', 'defaultRoute', 'statistic'])
    72         self.failUnlessEqual(ret, ['listMethods', 'status', 'stop', 'sms', 'fax', 'mail', 'routes', 'defaultRoute', 'statistic'])
    73 
    73 
    74     def testStatus(self):
    74     def testStatus(self):
    75         ''' test the status function'''
    75         ''' test the status function'''
    76         with WithSession(md.engine, autocommit=True) as session:
    76         with WithSession(md.engine, autocommit=True) as session:
       
    77             u = User(name='test',apikey='abcdef123456789')
    77             session.add(User(name='test',apikey='abcdef123456789'))
    78             session.add(User(name='test',apikey='abcdef123456789'))
    78         ret = self.__rpc2().status('abcdef123456789')
    79         self.failUnlessEqual(self.__rpc2().status('abcdef123456789'), {})
    79         self.failUnlessEqual(ret, "<User('test','abcdef123456789')>")
    80         
    80         self.failUnlessEqual(self.__rpc2().status('abcdef123456789','abcde'), ["<User('test','abcdef123456789')>",'abcde',False])
    81         with WithSession(md.engine, autocommit=True) as session:
    81         self.failUnlessEqual(self.__rpc2().status('abcdef123456789','abcde', True), ["<User('test','abcdef123456789')>",'abcde', True])
    82             u = session.merge(u)
    82         self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 'true'), ["<User('test','abcdef123456789')>", '', True])
    83             j = Job(hash="a1", info='info', status="started")
    83         self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 'false'), "<User('test','abcdef123456789')>")
    84             j.user=u
    84         self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 0), "<User('test','abcdef123456789')>")
    85             session.add(j)
    85         self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 1), ["<User('test','abcdef123456789')>", '', True])
    86        
       
    87         status = {'a1':{"status":"started"}}
       
    88         self.failUnlessEqual(self.__rpc2().status('abcdef123456789'), status)
       
    89         self.failUnlessEqual(self.__rpc2().status('abcdef123456789',"a1"), status)
       
    90         self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 'false'), status)
       
    91         self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 0), status)
       
    92 
       
    93         #JobNotFound
       
    94         with self.assertRaises(Fault) as fault:
       
    95             self.__rpc2().status('abcdef123456789',"b")
       
    96         exc = fault.exception
       
    97         unf = IroError.JobNotFound()
       
    98         self.failUnlessEqual(exc.faultCode, unf.code)
       
    99         self.failUnlessEqual(exc.faultString, unf.msg)
       
   100 
       
   101         #self.failUnlessEqual(self.__rpc2().status('abcdef123456789','abcde', True), ["<User('test','abcdef123456789')>",'abcde', True])
       
   102         #self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 'true'), ["<User('test','abcdef123456789')>", '', True])
       
   103         #self.failUnlessEqual(self.__rpc2().status('abcdef123456789', '', 1), ["<User('test','abcdef123456789')>", '', True])
    86     
   104     
    87     def testNoSuchUser(self):
   105     def testNoSuchUser(self):
    88         '''a unknown user should raise a UserNotNound Exception
   106         '''a unknown user should raise a UserNotNound Exception
    89         bewcause xmlrpc only has a Fault exception this Exception has to be deliverd through a xmlrpclib.Fault Exception'''
   107         bewcause xmlrpc only has a Fault exception this Exception has to be deliverd through a xmlrpclib.Fault Exception'''
    90         with self.assertRaises(Fault) as fault:
   108         with self.assertRaises(Fault) as fault: