cfme.utils.wait module¶
-
cfme.utils.wait.
wait_for
(func, func_args=[], func_kwargs={}, *, logger=<TraceLogger cfme (INFO)>, **kwargs)¶ Waits for a certain amount of time for an action to complete Designed to wait for a certain length of time, either linearly in 1 second steps, or exponentially, up to a maximum. Returns the output from the function once it completes successfully, along with the time taken to complete the command.
It tries to use
time.monotonic()
, if it is not present, falls back totime.time()
, but it then is not resistant against system time changes.- Note: If using the expo keyword, the returned elapsed time will be inaccurate
as wait_for does not know the exact time that the function returned correctly, only that it returned correctly at last check.
- Parameters
func – A function to be run
func_args – A list of function arguments to be passed to func
func_kwargs – A dict of function keyword arguments to be passed to func
num_sec – An int describing the number of seconds to wait before timing out.
timeout – Either an int describing the number of seconds to wait before timing out. Or a
timedelta
object. Or a string formatted like1h 10m 5s
. This then sets thenum_sec
variable.expo – A boolean flag toggling exponential delay growth.
message – A string containing a description of func’s operation. If None, defaults to the function’s name.
fail_condition – An object describing the failure condition that should be tested against the output of func. If func() == fail_condition, wait_for continues to wait. Can be a callable which takes the result and returns boolean whether to fail. You can also specify it as a set, that way it checks whether it is present in the iterable.
handle_exception – A boolean controlling the handling of excepetions during func() invocation. If set to True, in cases where func() results in an exception, clobber the exception and treat it as a fail_condition.
delay – An integer describing the number of seconds to delay before trying func() again.
fail_func – A function to be run after every unsuccessful attempt to run func()
quiet – Do not write time report to the log (default False)
very_quiet – Do not log unless there was an error (default False). Implies quiet.
silent_failure – Even if the entire attempt times out, don’t throw a exception.
log_on_loop – Fire off a log.info message indicating we’re still waiting at each iteration of the wait loop
- Returns
A tuple containing the output from func() and a float detailing the total wait time.
- Raises
TimedOutError – If num_sec is exceeded after an unsuccessful func() invocation.
-
cfme.utils.wait.
wait_for_decorator
(*args, **kwargs)¶ Wrapper for
utils.wait.wait_for()
that makes it nicer to write testing waits. It passes the function decorated to towait_for
Example: .. code-block:: python@wait_for_decorator(num_sec=120) def my_waiting_func():
return do_something()
You can also pass it without parameters, then it uses
wait_for
’s defaults: .. code-block:: python@wait_for_decorator def my_waiting_func():
return do_something()
Then the result of the waiting is stored in the variable named after the function.