From: Mike Bayer Date: Wed, 21 Sep 2011 14:26:49 +0000 (-0400) Subject: ensure sa_pool_key isn't passed to connect X-Git-Tag: rel_0_7_3~42 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=36e2b2d8750ca5bcf0345733973f5ed097d2949a;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git ensure sa_pool_key isn't passed to connect --- diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py index 0bca5f599a..0645c45b05 100644 --- a/lib/sqlalchemy/pool.py +++ b/lib/sqlalchemy/pool.py @@ -918,6 +918,7 @@ class _DBProxy(object): self._create_pool_mutex.acquire() try: if key not in self.pools: + kw.pop('sa_pool_key', None) pool = self.poolclass(lambda: self.module.connect(*args, **kw), **self.kw) self.pools[key] = pool diff --git a/test/engine/test_pool.py b/test/engine/test_pool.py index b515de0f88..789324445d 100644 --- a/test/engine/test_pool.py +++ b/test/engine/test_pool.py @@ -68,6 +68,21 @@ class PoolTest(PoolTestBase): assert c4 is c6 assert c4 is not c5 + def test_manager_with_key(self): + class NoKws(object): + def connect(self, arg): + return MockConnection() + + manager = pool.manage(NoKws(), use_threadlocal=True) + + c1 = manager.connect('foo.db', sa_pool_key="a") + c2 = manager.connect('foo.db', sa_pool_key="b") + c3 = manager.connect('bar.db', sa_pool_key="a") + + assert c1.cursor() is not None + assert c1 is not c2 + assert c1 is c3 + def test_bad_args(self): manager = pool.manage(MockDBAPI()) connection = manager.connect(None)