diff --git a/test/infamy/util.py b/test/infamy/util.py index 9fa1e967..77bc3ede 100644 --- a/test/infamy/util.py +++ b/test/infamy/util.py @@ -38,13 +38,20 @@ def parallel(*fns): def until(fn, attempts=10, interval=1): + last_exc = None for attempt in range(attempts): - result = fn() + try: + result = fn() + except Exception as e: + last_exc = e + result = False if result: return result time.sleep(interval) + if last_exc: + raise last_exc raise Exception("Expected condition did not materialize") @@ -119,4 +126,4 @@ def curl(url, timeout=10, silent=False): except (urllib.error.URLError, ConnectionResetError, UnicodeEncodeError, TimeoutError) as e: if not silent: print(f"[WARN] curl: failed to fetch {url}: {e}") - return "" \ No newline at end of file + return ""