]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
- Added "add()" and "add_all()" to scoped_session
authorMike Bayer <mike_mp@zzzcomputing.com>
Sun, 27 Jul 2008 16:52:05 +0000 (16:52 +0000)
committerMike Bayer <mike_mp@zzzcomputing.com>
Sun, 27 Jul 2008 16:52:05 +0000 (16:52 +0000)
methods.  Workaround for 0.4.7:

from sqlalchemy.orm.scoping import ScopedSession,\
instrument
setattr(
    ScopedSession, "add", instrument("add"))
setattr(
    ScopedSession, "add_all", instrument("add_all"))

CHANGES
VERSION
lib/sqlalchemy/orm/scoping.py
test/orm/session.py

diff --git a/CHANGES b/CHANGES
index c6a9e0bd2b65f0dc31414d97df7e3dfb22e78e9c..d62f2c0f839e74e7c6cccfeaf07cefedc1129e0f 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,7 +1,19 @@
 =======
 CHANGES
 =======
-
+0.4.8
+=====
+- orm 
+    - Added "add()" and "add_all()" to scoped_session
+      methods.  Workaround for 0.4.7:
+      
+        from sqlalchemy.orm.scoping import ScopedSession,\
+        instrument
+        setattr(
+            ScopedSession, "add", instrument("add"))
+        setattr(
+            ScopedSession, "add_all", instrument("add_all"))
+        
 0.4.7
 =====
 - orm
diff --git a/VERSION b/VERSION
index f90568270955379549eb7ee163cee9470f285188..cb498ab2c89f41f36e3c6ae234c4e0e844e49e23 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-0.4.7
+0.4.8
index 479b2f7374983c6781edde74e4fad80db1e32db2..90bc703fe8f007a735ec8c4eef2397646babe1ed 100644 (file)
@@ -97,7 +97,7 @@ def instrument(name):
     def do(self, *args, **kwargs):
         return getattr(self.registry(), name)(*args, **kwargs)
     return do
-for meth in ('get', 'load', 'close', 'save', 'commit', 'update', 'save_or_update', 'flush', 'query', 'delete', 'merge', 'clear', 'refresh', 'expire', 'expunge', 'rollback', 'begin', 'begin_nested', 'connection', 'execute', 'scalar', 'get_bind', 'is_modified', '__contains__', '__iter__'):
+for meth in ('add', 'add_all', 'get', 'load', 'close', 'save', 'commit', 'update', 'save_or_update', 'flush', 'query', 'delete', 'merge', 'clear', 'refresh', 'expire', 'expunge', 'rollback', 'begin', 'begin_nested', 'connection', 'execute', 'scalar', 'get_bind', 'is_modified', '__contains__', '__iter__'):
     setattr(ScopedSession, meth, instrument(meth))
 
 def makeprop(name):
index d9c11745f43c265808a90de5f06b35228263e012..f0b19a40751136d389056de72c9bcbecc365b983 100644 (file)
@@ -1042,7 +1042,22 @@ class ScopedSessionTest(ORMTest):
         self.assertEquals(SomeObject(id=1, data="hello", options=[SomeOtherObject(someid=1)]), Session.query(SomeObject).one())
         self.assertEquals(SomeObject(id=1, data="hello", options=[SomeOtherObject(someid=1)]), SomeObject.query.one())
         self.assertEquals(SomeOtherObject(someid=1), SomeOtherObject.query.filter(SomeOtherObject.someid==sso.someid).one())
-
+    
+    def test_forwards_compat_add(self):
+        Session = scoped_session(sessionmaker())
+        class User(object):
+            pass
+        
+        mapper(User, table)
+        u1 = User()
+        Session.add(u1)
+        assert u1 in Session()
+        
+        u2, u3 = User(), User()
+        Session.add_all([u2, u3])
+        assert u2 in Session()
+        assert u3 in Session()
+        
 class ScopedMapperTest(TestBase):
     def setUpAll(self):
         global metadata, table, table2