diff --git a/rally/utils.py b/rally/utils.py index 4a60e02a0f..3ed966156d 100644 --- a/rally/utils.py +++ b/rally/utils.py @@ -126,7 +126,8 @@ def import_modules_from_package(package): try_append_module(module_name, sys.modules) -def wait_for(resource, is_ready, update_resource=None, timeout=60, sleep=1): +def wait_for(resource, is_ready, update_resource=None, timeout=60, + check_interval=1): """Waits for the given resource to come into the desired state. Uses the readiness check function passed as a parameter and (optionally) @@ -139,13 +140,14 @@ def wait_for(resource, is_ready, update_resource=None, timeout=60, sleep=1): None, no result updating is performed :param timeout: Timeout in seconds after which a TimeoutException will be raised - :param sleep: Pause in seconds between the two consecutive readiness checks + :param check_interval: Interval in seconds between the two consecutive + readiness checks :returns: The "ready" resource object """ start = time.time() while not is_ready(resource): - time.sleep(sleep) + time.sleep(check_interval) if time.time() - start > timeout: raise exceptions.TimeoutException() if update_resource: diff --git a/tests/test_utils.py b/tests/test_utils.py index 541172fb17..ad9f161d6e 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -160,11 +160,15 @@ class WaitForTestCase(test.NoDBTestCase): return obj resource = object() - fake_checker_delayed = get_fake_checker_delayed(seconds=0.5) + fake_checker_delayed = get_fake_checker_delayed(seconds=0.3) loaded_resource = utils.wait_for(resource, fake_checker_delayed, fake_updater, 1, 0.2) self.assertEqual(loaded_resource, resource) + loaded_resource = utils.wait_for(resource, fake_checker_delayed, + None, 1, 0.2) + self.assertEqual(loaded_resource, resource) + self.assertRaises(exceptions.TimeoutException, utils.wait_for, object(), fake_checker_false, fake_updater, 0.3, 0.1)