tests/xmlrpc.py
branchdevel
changeset 105 48f2b8adc7da
parent 102 85ac86f7ffc4
child 106 d2992f011930
equal deleted inserted replaced
104:1d93f1ddfd16 105:48f2b8adc7da
     1 from multiprocessing import Process, Pool
     1 from multiprocessing import Process
     2 from sqlalchemy import create_engine
     2 from sqlalchemy import create_engine
     3 
       
     4 from time import sleep
       
     5 
     3 
     6 from tempfile import mkdtemp
     4 from tempfile import mkdtemp
     7 import shutil
     5 import shutil
     8 
     6 
     9 from iro.controller.database import createDatabase,WithSession, DBDefer
     7 from iro.controller.database import createDatabase,WithSession, DBDefer
    17 class SampleDatabase(Database):
    15 class SampleDatabase(Database):
    18     def createPassword(self):
    16     def createPassword(self):
    19         self.password="test"
    17         self.password="test"
    20         return self.password
    18         return self.password
    21 
    19 
       
    20 from twisted.python import log
    22 import logging
    21 import logging
    23 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)s(%(processName)s)-%(levelname)s: %(message)s')
    22 logging.basicConfig(level=logging.INFO, format='%(asctime)s %(name)s(%(processName)s)-%(levelname)s: %(message)s')
    24 
    23 #observer = log.PythonLoggingObserver()
       
    24 #observer.start()
    25 
    25 
    26 def xxxxx(userid):
    26 def xxxxx(userid):
    27     import xmlrpclib
    27     import xmlrpclib
    28     return xmlrpclib.ServerProxy('http://localhost:7080/RPC2').status(userid)
    28     return xmlrpclib.ServerProxy('http://localhost:7080/RPC2').listMethods()
    29 
    29 
    30 def main():
    30 def main():
    31     from twisted.internet import reactor
    31     from twisted.internet import reactor
    32     from twisted.web import xmlrpc, server
    32     from twisted.web import xmlrpc, server
    33     
    33     
    57         db.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%tdir)
    57         db.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%tdir)
    58         dbdefer = DBDefer('mysql://test:test@localhost/test?unix_socket=%s/socket'%tdir, pool_size=5)
    58         dbdefer = DBDefer('mysql://test:test@localhost/test?unix_socket=%s/socket'%tdir, pool_size=5)
    59 
    59 
    60         @dbdefer
    60         @dbdefer
    61         def getuser(userhash, session):
    61         def getuser(userhash, session):
    62             session.execute("SELECT SLEEP(10)")
    62             #session.execute("SELECT SLEEP(10)")
    63             return imuser._getuser(userhash = userhash, session=session) 
    63             return imuser._getuser(userhash = userhash, session=session) 
       
    64         
    64         imuser.dbdefer=dbdefer
    65         imuser.dbdefer=dbdefer
    65         imuser._getuser=imuser.getuser
    66         imuser._getuser=imuser.getuser
    66         imuser.getuser=getuser
    67         imuser.getuser=getuser
    67 
    68 
    68 
    69 
    70             createDatabase()
    71             createDatabase()
    71             with WithSession(autocommit=True) as session:
    72             with WithSession(autocommit=True) as session:
    72                 session.add(User(name='test',apikey='abcdef123456789'))
    73                 session.add(User(name='test',apikey='abcdef123456789'))
    73             p = Process(target=main)
    74             p = Process(target=main)
    74             p.start()
    75             p.start()
    75             sleep(1)
       
    76             pool=Pool(5)
       
    77             print pool.map(xxxxx, ('abcdef123456789',)*25)
       
    78             p.join()
    76             p.join()
    79         finally:
    77         finally:
    80             s.stop()
    78             s.stop()
    81     finally:
    79     finally:
    82         shutil.rmtree(tdir)
    80         shutil.rmtree(tdir)