devtools/__init__.py
changeset 937 491dbd818f9b
parent 298 3e6d32667140
child 1016 26387b836099
equal deleted inserted replaced
935:ec229cc67334 937:491dbd818f9b
   258 def install_sqlite_path(querier):
   258 def install_sqlite_path(querier):
   259     """This patch hotfixes the following sqlite bug :
   259     """This patch hotfixes the following sqlite bug :
   260        - http://www.sqlite.org/cvstrac/tktview?tn=1327,33
   260        - http://www.sqlite.org/cvstrac/tktview?tn=1327,33
   261        (some dates are returned as strings rather thant date objects)
   261        (some dates are returned as strings rather thant date objects)
   262     """
   262     """
       
   263     if hasattr(querier.__class__, '_devtools_sqlite_patched'):
       
   264         return # already monkey patched
   263     def wrap_execute(base_execute):
   265     def wrap_execute(base_execute):
   264         def new_execute(*args, **kwargs):
   266         def new_execute(*args, **kwargs):
   265             rset = base_execute(*args, **kwargs)
   267             rset = base_execute(*args, **kwargs)
   266             if rset.description:
   268             if rset.description:
   267                 found_date = False
   269                 found_date = False
   286                     if not found_date:
   288                     if not found_date:
   287                         break
   289                         break
   288             return rset
   290             return rset
   289         return new_execute
   291         return new_execute
   290     querier.__class__.execute = wrap_execute(querier.__class__.execute)
   292     querier.__class__.execute = wrap_execute(querier.__class__.execute)
   291 
   293     querier.__class__._devtools_sqlite_patched = True
   292 
   294 
   293 def init_test_database(driver='sqlite', configdir='data', config=None,
   295 def init_test_database(driver='sqlite', configdir='data', config=None,
   294                        vreg=None):
   296                        vreg=None):
   295     """init a test database for a specific driver"""
   297     """init a test database for a specific driver"""
   296     from cubicweb.dbapi import in_memory_cnx
   298     from cubicweb.dbapi import in_memory_cnx