From 98e5950a4ced3e9a4cd435459e34b641b2152492 Mon Sep 17 00:00:00 2001 From: "Ivan A. Melnikov" Date: Thu, 27 Mar 2014 11:54:04 +0400 Subject: [PATCH] tests: Discover absence of zookeeper faster It turns out that when no zookeeper server is available for tests python ./setup.py test spends almost half of it's running time looking for it. This change addresses that and makes unit tests run roughly two times faster on my zookeeperless machine: - client starting timeout reduced from default 15 seconds to 3 seconds, which should be more than enough to connect to localhost; - zookeeper availability is checked only once, on module import, and then saved for later re-use. Change-Id: I11932e7cca12436cde0bcf0a20cb2adb96fbb27a --- .../tests/unit/persistence/test_zk_persistence.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/taskflow/tests/unit/persistence/test_zk_persistence.py b/taskflow/tests/unit/persistence/test_zk_persistence.py index a32f16cf..04eac378 100644 --- a/taskflow/tests/unit/persistence/test_zk_persistence.py +++ b/taskflow/tests/unit/persistence/test_zk_persistence.py @@ -34,7 +34,8 @@ TEST_PATH_TPL = '/taskflow/persistence-test/%s' def _zookeeper_available(): client = kazoo_utils.make_client(TEST_CONFIG) try: - client.start() + # NOTE(imelnikov): 3 seconds we should be enough for localhost + client.start(timeout=3) zk_ver = client.server_version() if zk_ver >= impl_zookeeper.MIN_ZK_VERSION: return True @@ -43,14 +44,13 @@ def _zookeeper_available(): except Exception: return False finally: - try: - client.stop() - client.close() - except Exception: - pass + kazoo_utils.finalize_client(client) -@testtools.skipIf(not _zookeeper_available(), 'zookeeper is not available') +_ZOOKEEPER_AVAILABLE = _zookeeper_available() + + +@testtools.skipIf(not _ZOOKEEPER_AVAILABLE, 'zookeeper is not available') class ZkPersistenceTest(test.TestCase, base.PersistenceTestMixin): def _get_connection(self): return self.backend.get_connection()