From 77b7bc79452b6735e72339ea20693aed3305a2b9 Mon Sep 17 00:00:00 2001 From: Ihar Hrachyshka Date: Sun, 27 Sep 2026 14:54:11 -0400 Subject: [PATCH] test(bootstrapper): prevent unintended background downloads Tests replacing PrepareSource.run() do not consume background results. Disable background work too so placeholder URLs never trigger requests. This becomes important in sandboxed environments where network requests don't quickly return an error but instead go into a backoff retry loop. Co-Authored-By: OpenAI Codex Signed-off-by: Ihar Hrachyshka --- tests/test_bootstrapper.py | 5 ++++- tests/test_bootstrapper_iterative.py | 5 +++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tests/test_bootstrapper.py b/tests/test_bootstrapper.py index 0a924eec..e640cfb0 100644 --- a/tests/test_bootstrapper.py +++ b/tests/test_bootstrapper.py @@ -412,7 +412,10 @@ def prepare_source_run( req = Requirement("testpkg>=1.0") - with patch.object(PrepareSource, "run", prepare_source_run): + with ( + patch.object(PrepareSource, "background_work", return_value=None), + patch.object(PrepareSource, "run", prepare_source_run), + ): with patch.object(bt, "has_been_seen", return_value=False): bt._bootstrap_one( req=req, diff --git a/tests/test_bootstrapper_iterative.py b/tests/test_bootstrapper_iterative.py index 7852997d..d68d45d4 100644 --- a/tests/test_bootstrapper_iterative.py +++ b/tests/test_bootstrapper_iterative.py @@ -1247,6 +1247,7 @@ def complete_run( with ( patch.object(Resolve, "run", resolve_run), patch.object(Start, "run", start_run), + patch.object(PrepareSource, "background_work", return_value=None), patch.object(PrepareSource, "run", prepare_source_run), patch.object(PrepareBuild, "run", prepare_build_run), patch.object(Build, "run", build_run), @@ -1336,6 +1337,7 @@ def complete_run( with ( patch.object(Resolve, "run", resolve_run), patch.object(Start, "run", start_run), + patch.object(PrepareSource, "background_work", return_value=None), patch.object(PrepareSource, "run", prepare_source_run), patch.object(Complete, "run", complete_run), patch.object( @@ -1376,6 +1378,7 @@ def prepare_source_run( return [] with ( + patch.object(PrepareSource, "background_work", return_value=None), patch.object(PrepareSource, "run", prepare_source_run), patch.object( bt._resolver, @@ -1420,6 +1423,7 @@ def prepare_source_run( with ( patch.object(Resolve, "run", resolve_run), + patch.object(PrepareSource, "background_work", return_value=None), patch.object(PrepareSource, "run", prepare_source_run), patch.object( bt._resolver, @@ -1452,6 +1456,7 @@ def prepare_source_run( return [] with ( + patch.object(PrepareSource, "background_work", return_value=None), patch.object(PrepareSource, "run", prepare_source_run), patch.object( bt._resolver,