From cdde69e7bdef6d9a8a074d1051e099e217d33acf Mon Sep 17 00:00:00 2001 From: Jason Kirtland Date: Wed, 29 Aug 2007 20:23:02 +0000 Subject: [PATCH] Fix for scoped_session's `mapper(extension=)` [ticket:760] --- CHANGES | 1 + lib/sqlalchemy/orm/scoping.py | 2 +- test/orm/session.py | 12 ++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index 7bf0d8b470..ccd2fdbdad 100644 --- a/CHANGES +++ b/CHANGES @@ -17,6 +17,7 @@ CHANGES - [ticket:748] - [ticket:762] + - [ticket:760] 0.4.0beta4 ---------- diff --git a/lib/sqlalchemy/orm/scoping.py b/lib/sqlalchemy/orm/scoping.py index aebcfcdfe5..caa46670b9 100644 --- a/lib/sqlalchemy/orm/scoping.py +++ b/lib/sqlalchemy/orm/scoping.py @@ -51,7 +51,7 @@ class ScopedSession(object): from sqlalchemy.orm import mapper validate = kwargs.pop('validate', False) - extension = to_list(kwargs.setdefault('extension', [])) + kwargs['extension'] = extension = to_list(kwargs.get('extension', [])) if validate: extension.append(self.extension.validating()) else: diff --git a/test/orm/session.py b/test/orm/session.py index 8c93eacbcc..0d0900c3a9 100644 --- a/test/orm/session.py +++ b/test/orm/session.py @@ -648,6 +648,18 @@ class ScopedMapperTest(PersistTest): pass Session.mapper(Foo, table2) assert hasattr(Foo, 'query') + + ext = MapperExtension() + + class Bar(object): + pass + Session.mapper(Bar, table2, extension=[ext]) + assert hasattr(Bar, 'query') + + class Baz(object): + pass + Session.mapper(Baz, table2, extension=ext) + assert hasattr(Baz, 'query') def test_validating_constructor(self): s2 = SomeObject(someid=12) -- 2.47.3