fix: bake promtool into ci-full image, add download timeout, speed up tests
CI / auto-merge (pull_request) Has been skipped
CI / validate (pull_request) Waiting to run

- Add promtool to ci-full Dockerfile so it's pre-installed in the
  runner image instead of downloaded at runtime on every infra CI run
- Add 60s timeout to _download() in install_tools.py to prevent
  indefinite hangs when GitHub release downloads stall
- Use -n 8 workers for test-unit target (3s vs 4s with auto/16)
- Update test_download to mock urlopen instead of urlretrieve

Generated with [Devin](https://devin.ai)

Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
emil
2026-07-17 03:31:15 +02:00
co-authored by Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent 4de11bfc18
commit 101b6a709f
6 changed files with 36 additions and 22 deletions
+17 -5
View File
@@ -47,13 +47,25 @@ class TestDownload:
def test_download(self, tmp_path: Path) -> None:
dest = tmp_path / "file.bin"
def _write_file(url: str, path: Path) -> tuple[str, None]:
Path(path).write_bytes(b"data")
return str(path), None
class _FakeResponse:
def __init__(self) -> None:
self._sent = False
with patch("urllib.request.urlretrieve", side_effect=_write_file) as mock_retrieve:
def __enter__(self) -> _FakeResponse:
return self
def __exit__(self, *args: object) -> None:
pass
def read(self, n: int = -1) -> bytes:
if self._sent:
return b""
self._sent = True
return b"data"
with patch("urllib.request.urlopen", return_value=_FakeResponse()) as mock_urlopen:
install_tools._download("https://example.com/file", dest)
mock_retrieve.assert_called_once()
mock_urlopen.assert_called_once()
assert dest.read_bytes() == b"data"