diff --git a/esphome/espidf/install_tool_archives.py b/esphome/espidf/install_tool_archives.py index 2c5b4df5e7..fdebffd09f 100644 --- a/esphome/espidf/install_tool_archives.py +++ b/esphome/espidf/install_tool_archives.py @@ -75,6 +75,8 @@ def install_one(tool: object, name: str, version: str) -> bool | None: ) return None return False + # Per-tool completion keeps the multi-minute unpack phase visibly alive + print(f"extracted {name}@{version}", flush=True) return True diff --git a/tests/unit_tests/test_espidf_framework.py b/tests/unit_tests/test_espidf_framework.py index 2285a166df..b95c07f903 100644 --- a/tests/unit_tests/test_espidf_framework.py +++ b/tests/unit_tests/test_espidf_framework.py @@ -2213,6 +2213,8 @@ def test_install_tool_archives_inprocess_dedupes_and_skips( "Extracting 2 ESP-IDF tool archive(s) with 2 worker(s): " "cmake@3.30.2, ninja@1.12.1" in captured.out ) + assert "extracted cmake@3.30.2" in captured.out + assert "extracted ninja@1.12.1" in captured.out assert "leaving broken broken-tool to the installer" in captured.err tools = tmp_path / "tp" / "tools" assert (tools / "cmake" / "3.30.2" / ".installed").is_file()