From d834a868fa0fdc546664af54d3040f866d11608f Mon Sep 17 00:00:00 2001 From: Eddie A Tejeda <669988+eddietejeda@users.noreply.github.com> Date: Wed, 2 Sep 2026 17:37:51 -0700 Subject: [PATCH] test: retry list_query_runs briefly before failing query_async_polling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The shared sdkci database serves concurrent CI runs, and a run that just reached terminal status can lag out of list_query_runs momentarily — seen on main run 33699871288, where the run succeeded but the immediate listing missed it while two sibling CI runs were active. Poll for up to 10s before declaring the run missing. --- tests/integration/test_query_async_polling.py | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/tests/integration/test_query_async_polling.py b/tests/integration/test_query_async_polling.py index 791fe32..a282928 100644 --- a/tests/integration/test_query_async_polling.py +++ b/tests/integration/test_query_async_polling.py @@ -70,10 +70,20 @@ def test_query_async_polling( ) assert run.row_count == 1 - runs_listing = query_runs_api.list_query_runs(x_database_id=database_id, limit=50) - assert any(r.id == query_run_id for r in runs_listing.query_runs), ( - f"query run {query_run_id} not surfaced by list_query_runs" - ) + # The shared sdkci database serves concurrent CI runs, and a run that just + # reached terminal status can lag out of list_query_runs briefly — retry + # for a few seconds before declaring it missing. + listing_deadline = time.monotonic() + 10.0 + while True: + runs_listing = query_runs_api.list_query_runs( + x_database_id=database_id, limit=50 + ) + if any(r.id == query_run_id for r in runs_listing.query_runs): + break + assert time.monotonic() < listing_deadline, ( + f"query run {query_run_id} not surfaced by list_query_runs" + ) + time.sleep(POLL_INTERVAL_S) if run.result_id: result = results_api.get_result(run.result_id, x_database_id=database_id)