diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-04-22 19:35:16 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2015-04-22 19:35:16 -0400 |
commit | b957cdbd945fd20d06a7b521c0b45e50b016d294 (patch) | |
tree | 92942437d041aafdf6108e50fa08bac90f689b37 | |
parent | fa88d0e8ffbec9f434e99a34cc5e3e0d3f88c04e (diff) | |
download | sqlalchemy-b957cdbd945fd20d06a7b521c0b45e50b016d294.tar.gz |
- fixes for some tests, staticpool
-rw-r--r-- | lib/sqlalchemy/pool.py | 14 | ||||
-rw-r--r-- | lib/sqlalchemy/testing/engines.py | 2 | ||||
-rw-r--r-- | test/engine/test_execute.py | 2 |
3 files changed, 7 insertions, 11 deletions
diff --git a/lib/sqlalchemy/pool.py b/lib/sqlalchemy/pool.py index debcc9245..58775d7f4 100644 --- a/lib/sqlalchemy/pool.py +++ b/lib/sqlalchemy/pool.py @@ -214,7 +214,8 @@ class Pool(log.Identified): log.instance_logger(self, echoflag=echo) self._threadconns = threading.local() - self._creator = self._maybe_wrap_callable(creator) + self._creator = creator + self._wrapped_creator = self._maybe_wrap_callable(creator) self._recycle = recycle self._invalidate_time = 0 self._use_threadlocal = use_threadlocal @@ -581,7 +582,7 @@ class _ConnectionRecord(object): def __connect(self): try: self.starttime = time.time() - connection = self.__pool._creator(self) + connection = self.__pool._wrapped_creator(self) self.__pool.logger.debug("Created new connection %r", connection) return connection except Exception as e: @@ -1137,10 +1138,6 @@ class StaticPool(Pool): @memoized_property def _conn(self): - return self._creator() - - @memoized_property - def connection(self): return _ConnectionRecord(self) def status(self): @@ -1148,8 +1145,7 @@ class StaticPool(Pool): def dispose(self): if '_conn' in self.__dict__: - self._conn.close() - self._conn = None + self._conn.connection.close() def recreate(self): self.logger.info("Pool recreating") @@ -1169,7 +1165,7 @@ class StaticPool(Pool): pass def _do_get(self): - return self.connection + return self._conn.connection class AssertionPool(Pool): diff --git a/lib/sqlalchemy/testing/engines.py b/lib/sqlalchemy/testing/engines.py index 3a8303546..bfd61ff39 100644 --- a/lib/sqlalchemy/testing/engines.py +++ b/lib/sqlalchemy/testing/engines.py @@ -307,7 +307,7 @@ class DBAPIProxyConnection(object): """ def __init__(self, engine, cursor_cls): - self.conn = self._sqla_unwrap = engine.pool._creator() + self.conn = self._sqla_unwrap = engine.pool._wrapped_creator(None) self.engine = engine self.cursor_cls = cursor_cls diff --git a/test/engine/test_execute.py b/test/engine/test_execute.py index 761ac102a..cba3972f6 100644 --- a/test/engine/test_execute.py +++ b/test/engine/test_execute.py @@ -2174,7 +2174,7 @@ class HandleInvalidatedOnConnectTest(fixtures.TestBase): conn.invalidate() - eng.pool._creator = Mock( + eng.pool._wrapped_creator = Mock( side_effect=self.ProgrammingError( "Cannot operate on a closed database.")) |