tests/xmlrpc.py
branchdevel
changeset 107 f11520354165
parent 106 d2992f011930
child 108 cadc01b2bdc0
equal deleted inserted replaced
106:d2992f011930 107:f11520354165
     1 from multiprocessing import Process
     1 from multiprocessing import Process
     2 from sqlalchemy import create_engine
     2 from sqlalchemy import create_engine, pool
     3 
     3 
     4 from tempfile import mkdtemp
     4 from tempfile import mkdtemp
     5 import shutil
     5 import shutil
     6 
     6 
     7 from iro.controller.database import createDatabase,WithSession, DBDefer
     7 from iro.model.utils import WithSession, DBDefer, POOL_SIZE as DB_POOL_SIZE
     8 import iro.model.user as imuser
     8 import iro.model.user as imuser
     9 import iro.controller.database as db
       
    10 
     9 
    11 from iro.model.schema import User
    10 from iro.model.schema import User, Base
    12 
    11 
    13 from ngdatabase.mysql import Server,createConfig,Database
    12 from ngdatabase.mysql import Server, createConfig, Database
    14 
    13 
    15 class SampleDatabase(Database):
    14 class SampleDatabase(Database):
    16     def createPassword(self):
    15     def createPassword(self):
    17         self.password="test"
    16         self.password="test"
    18         return self.password
    17         return self.password
    19 
    18 
    20 from twisted.python import log
    19 from twisted.python import log
    21 import logging
    20 import logging
    22 logging.basicConfig(level=logging.INFO, format='%(asctime)s %(name)s(%(processName)s)-%(levelname)s: %(message)s')
    21 logging.basicConfig(level=logging.DEBUG, format='%(asctime)s %(name)s(%(processName)s)-%(levelname)s: %(message)s')
    23 #observer = log.PythonLoggingObserver()
    22 #observer = log.PythonLoggingObserver()
    24 #observer.start()
    23 #observer.start()
    25 
    24 
    26 def xxxxx(userid):
    25 def xxxxx(userid):
    27     import xmlrpclib
    26     import xmlrpclib
    39             return ""
    38             return ""
    40 
    39 
    41     root=getResource()
    40     root=getResource()
    42     root.putChild('debug', XMLRPCDebug())
    41     root.putChild('debug', XMLRPCDebug())
    43     reactor.listenTCP(7080, server.Site(root))
    42     reactor.listenTCP(7080, server.Site(root))
    44     reactor.suggestThreadPoolSize(5)
    43     logging.info("Server is running now...")
    45     reactor.run()
    44     reactor.run()
    46 
    45 
    47 if __name__ == '__main__':
    46 if __name__ == '__main__':
    48     tdir = mkdtemp(prefix='iro-mysql-')
    47     tdir = mkdtemp(prefix='iro-mysql-')
    49     try:
    48     try:
    52         s = Server('%s/my.cnf'%tdir)
    51         s = Server('%s/my.cnf'%tdir)
    53         s.create()
    52         s.create()
    54         s.start()
    53         s.start()
    55         d=SampleDatabase("test","test",'%s/my.cnf'%tdir)
    54         d=SampleDatabase("test","test",'%s/my.cnf'%tdir)
    56         d.create()
    55         d.create()
    57         db.engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%tdir)
    56         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)
    57                poolclass = pool.SingletonThreadPool,  pool_size=DB_POOL_SIZE, )
    59 
    58         dbdefer = DBDefer(engine)
       
    59         withsession=WithSession(engine, autocommit=True)
    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         
    65         imuser.dbdefer=dbdefer
    65         imuser.dbdefer=dbdefer
    66         imuser._getuser=imuser.getuser
    66         imuser._getuser=imuser.getuser
    67         imuser.getuser=getuser
    67         imuser.getuser=getuser
    68 
    68 
    69 
       
    70         try:
    69         try:
    71             createDatabase()
    70             Base.metadata.create_all(engine)
    72             with WithSession(autocommit=True) as session:
    71             with withsession as session:
    73                 session.add(User(name='test',apikey='abcdef123456789'))
    72                 session.add(User(name='test',apikey='abcdef123456789'))
    74             p = Process(target=main)
    73             p = Process(target=main)
    75             p.start()
    74             p.start()
    76             p.join()
    75             p.join()
    77         finally:
    76         finally: