[Checkins] SVN: z3c.saconfig/trunk/src/z3c/saconfig/utility.py Support SA 0.4-series by having distinct session defaults (similar to the test-setup in zope.sqlalchemy).

Malthe Borch mborch at gmail.com
Wed Jul 9 05:23:06 EDT 2008


Log message for revision 88138:
  Support SA 0.4-series by having distinct session defaults (similar to the test-setup in zope.sqlalchemy).

Changed:
  U   z3c.saconfig/trunk/src/z3c/saconfig/utility.py

-=-
Modified: z3c.saconfig/trunk/src/z3c/saconfig/utility.py
===================================================================
--- z3c.saconfig/trunk/src/z3c/saconfig/utility.py	2008-07-09 09:10:56 UTC (rev 88137)
+++ z3c.saconfig/trunk/src/z3c/saconfig/utility.py	2008-07-09 09:23:05 UTC (rev 88138)
@@ -14,6 +14,19 @@
 from z3c.saconfig.interfaces import (IScopedSession, ISiteScopedSession,
                                      IEngineFactory)
 
+SA_0_5 = sqlalchemy.__version__.split('.')[:2] == ['0', '5']
+
+if SA_0_5:
+    SESSION_DEFAULTS = dict(
+        autocommit=False,
+        autoflush=True,
+        extension=ZopeTransactionExtension())
+else:
+    SESSION_DEFAULTS = dict(
+        autoflush=True,
+        transactional=True,
+        extension=ZopeTransactionExtension())
+
 class GloballyScopedSession(object):
     """A globally scoped session.
 
@@ -57,13 +70,11 @@
 def _zope_session_defaults(kw):
     """Adjust keyword parameters with proper defaults for Zope.
     """
+
     kw = kw.copy()
-    if 'autocommit' not in kw:
-        kw['autocommit'] = False
-    if 'autoflush' not in kw:
-        kw['autoflush'] = True
-    if 'extension' not in kw:
-        kw['extension'] = ZopeTransactionExtension()
+    kw.update(dict((key, default) for key, default in SESSION_DEFAULTS.items() \
+                   if key not in kw))
+
     return kw
 
 class SiteScopedSession(object):



More information about the Checkins mailing list