Mercurial > repos > guerler > springsuite
view planemo/lib/python3.7/site-packages/galaxy/tool_util/verify/wait.py @ 1:56ad4e20f292 draft
"planemo upload commit 6eee67778febed82ddd413c3ca40b3183a3898f1"
author | guerler |
---|---|
date | Fri, 31 Jul 2020 00:32:28 -0400 |
parents | |
children |
line wrap: on
line source
"""Abstraction for waiting on API conditions to become true.""" import time def wait_on(function, desc, timeout): """Wait for function to return non-None value.""" delta = .25 iteration = 0 while True: total_wait = delta * iteration if total_wait > timeout: timeout_message = "Timed out after %s seconds waiting on %s." % ( total_wait, desc ) raise TimeoutAssertionError(timeout_message) iteration += 1 value = function() if value is not None: return value time.sleep(delta) class TimeoutAssertionError(AssertionError): """Derivative of AssertionError indicating wait_on exceeded max time.""" def __init__(self, message): super(TimeoutAssertionError, self).__init__(message)