model.user uses now the decorator DBDefer devel
authorSandro Knauß <knauss@netzguerilla.net>
Sun, 22 Jan 2012 23:53:27 +0100
branchdevel
changeset 108 cadc01b2bdc0
parent 107 f11520354165
child 109 935b5fcaf152
model.user uses now the decorator DBDefer
fabfile.py
iro/model/user.py
tests/xmlrpc.py
--- a/fabfile.py	Sun Jan 22 23:29:18 2012 +0100
+++ b/fabfile.py	Sun Jan 22 23:53:27 2012 +0100
@@ -26,6 +26,7 @@
     put("dist/iro-%s.tar.gz"%__version__,"%s/dist/"%env.directory)
     put("%(directory)s/dist/ngmodules-%(version)s-py2.7.egg"%ngmodules,"%s/dist/"%env.directory)
     virtualenv("easy_install %s/dist/ngmodules-%s-py2.7.egg"%(env.directory,ngmodules["version"]))
+    virtualenv("pip uninstall iro")
     virtualenv("pip install %s/dist/iro-%s.tar.gz"%(env.directory,__version__))
 
 
--- a/iro/model/user.py	Sun Jan 22 23:29:18 2012 +0100
+++ b/iro/model/user.py	Sun Jan 22 23:53:27 2012 +0100
@@ -1,9 +1,18 @@
 from inspect import getcallargs
 
 from .schema import User
+from .utils import DBDefer
 from ..validate import vuserhash, validate
 from ..error import UserNotFound, InterfaceException
 
+
+dbdefer=DBDefer(None)
+
+def setEngine(engine,autocommit=False): 
+    dbdefer.engine = engine
+    dbdefer.autocommit = autocommit
+
+@dbdefer
 @validate(userhash=vuserhash)
 def getuser(userhash, session):
     user = session.query(User).filter_by(apikey=userhash).first()
--- a/tests/xmlrpc.py	Sun Jan 22 23:29:18 2012 +0100
+++ b/tests/xmlrpc.py	Sun Jan 22 23:53:27 2012 +0100
@@ -4,7 +4,7 @@
 from tempfile import mkdtemp
 import shutil
 
-from iro.model.utils import WithSession, DBDefer, POOL_SIZE as DB_POOL_SIZE
+from iro.model.utils import WithSession, POOL_SIZE as DB_POOL_SIZE
 import iro.model.user as imuser
 
 from iro.model.schema import User, Base
@@ -55,20 +55,12 @@
         d.create()
         engine = create_engine('mysql://test:test@localhost/test?unix_socket=%s/socket'%tdir,
                poolclass = pool.SingletonThreadPool,  pool_size=DB_POOL_SIZE, )
-        dbdefer = DBDefer(engine)
-        withsession=WithSession(engine, autocommit=True)
-        @dbdefer
-        def getuser(userhash, session):
-            #session.execute("SELECT SLEEP(10)")
-            return imuser._getuser(userhash = userhash, session=session) 
-        
-        imuser.dbdefer=dbdefer
-        imuser._getuser=imuser.getuser
-        imuser.getuser=getuser
+
+        imuser.setEngine(engine)
 
         try:
             Base.metadata.create_all(engine)
-            with withsession as session:
+            with WithSession(engine, autocommit=True) as session:
                 session.add(User(name='test',apikey='abcdef123456789'))
             p = Process(target=main)
             p.start()