From 2acba9b3642900dbc42520abca70abeab2ab5cbd Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Sat, 22 Aug 2026 20:01:13 -0500 Subject: [PATCH] Materialize the tracker mock before the prefetch threads race its creation --- tests/unit_tests/test_espidf_framework.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/unit_tests/test_espidf_framework.py b/tests/unit_tests/test_espidf_framework.py index 70091fbf13..b51d535586 100644 --- a/tests/unit_tests/test_espidf_framework.py +++ b/tests/unit_tests/test_espidf_framework.py @@ -950,6 +950,8 @@ def test_prefetch_downloads_each_archive_with_resume(tmp_path: Path) -> None: patch("esphome.espidf.framework.get_system_python_path", return_value="python"), patch("esphome.espidf.framework.BatchDownloadProgress") as progress_cls, ): + # Materialize the lazy mock before threads race its first creation + tracker = progress_cls.return_value.tracker.return_value _prefetch_idf_tool_archives(tmp_path, "esp32", ["required"], None) dist = get_idf_tools_path() / "dist" @@ -964,7 +966,6 @@ def test_prefetch_downloads_each_archive_with_resume(tmp_path: Path) -> None: assert kwargs["size"] == 123 # every archive reports into the one combined progress bar progress_cls.assert_called_once_with("Downloading ESP-IDF tools", 123 + 45) - tracker = progress_cls.return_value.tracker.return_value assert all(kw["progress"] is tracker for kw in calls.values())