diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-07-27 16:52:05 +0000 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2008-07-27 16:52:05 +0000 |
commit | 80a0abb7a7423f63bbda171da292dc8a18f5ece5 (patch) | |
tree | 2db1f933cf59f142116d957cd495ac8bb9e454f7 | |
parent | deeee6eb33ffa392d200d5c4e8924b85c6ba33b6 (diff) | |
download | sqlalchemy-80a0abb7a7423f63bbda171da292dc8a18f5ece5.tar.gz |
- 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"))
-rw-r--r-- | CHANGES | 14 | ||||
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | lib/sqlalchemy/orm/scoping.py | 2 | ||||
-rw-r--r-- | test/orm/session.py | 17 |
4 files changed, 31 insertions, 4 deletions
@@ -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 @@ -1 +1 @@ -0.4.7 +0.4.8 diff --git a/lib/sqlalchemy/orm/scoping.py b/lib/sqlalchemy/orm/scoping.py index 479b2f737..90bc703fe 100644 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@ -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): diff --git a/test/orm/session.py b/test/orm/session.py index d9c11745f..f0b19a407 100644 --- a/test/orm/session.py +++ b/test/orm/session.py @@ -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 |