From 0bc944de5fc7fb2df480de497f8ad31e298be003 Mon Sep 17 00:00:00 2001 From: Ramon Date: Mon, 27 Jul 2026 20:37:34 +0200 Subject: [PATCH] v0.7.30-beta - proefdraai werkt zonder curl De teststap draait in python:3.12-slim, waar curl ontbreekt. Het installatiescript brak daar af op de vereistencontrole, waardoor test_dry_run_wijzigt_niets en test_dry_run_toont_de_hele_gang_van_zaken faalden op de runner (runs 74 en 75). Ontbrekende curl/tar is nu een waarschuwing bij --dry-run in plaats van een harde fout, net als bij Docker: een proefdraai hoort juist te tonen wat er zou gebeuren op een machine waar nog niets staat. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb --- install.sh | 2 +- tests/test_install_script.py | 34 ++++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 8533f58..28678d7 100755 --- a/install.sh +++ b/install.sh @@ -140,7 +140,7 @@ controleer_systeem() { bepaal_rechten [ "$(uname -s)" = "Linux" ] || waarschuw "Dit script is voor Linux; op $(uname -s) is het onbeproefd." for hulp in curl tar; do - heeft "$hulp" || fout "'$hulp' ontbreekt. Installeer het en probeer opnieuw." + heeft "$hulp" || fout_tenzij_droog "'$hulp' ontbreekt. Installeer het en probeer opnieuw." done goed "$(uname -s) $(uname -m)" } diff --git a/tests/test_install_script.py b/tests/test_install_script.py index e64ef6b..9fa4fd5 100644 --- a/tests/test_install_script.py +++ b/tests/test_install_script.py @@ -91,6 +91,40 @@ def test_dry_run_toont_de_hele_gang_van_zaken(tmp_path): assert kop in r.stdout, f"stap ontbreekt: {kop}" +def _pad_zonder(tmp_path, *weglaten): + """Een PATH met alles erin behalve de genoemde commando's.""" + nep = tmp_path / "bin" + nep.mkdir() + import os + for map_ in os.environ.get("PATH", "").split(os.pathsep): + p = Path(map_) + if not p.is_dir(): + continue + for f in p.iterdir(): + if f.name in weglaten or (nep / f.name).exists(): + continue + try: + (nep / f.name).symlink_to(f) + except OSError: + pass + return str(nep) + + +def test_proefdraai_werkt_zonder_curl_en_tar(tmp_path): + """De CI-runner draait in python:3.12-slim, waar curl ontbreekt. Een + proefdraai hoort dan nog steeds de hele voorvertoning te tonen: dat is juist + het moment waarop je wil zien wat er zou gebeuren.""" + r = subprocess.run(["sh", str(SCRIPT), "--dry-run", "--dir", + str(tmp_path / "su"), "--yes"], + capture_output=True, text=True, timeout=60, + env={"PATH": _pad_zonder(tmp_path, "curl", "tar"), + "HOME": str(tmp_path)}) + assert r.returncode == 0, r.stderr + assert "[droog]" in r.stdout + assert "Bouwen en starten" in r.stdout + assert not (tmp_path / "su").exists() + + def test_verwijst_naar_het_juiste_git_domein(): tekst = SCRIPT.read_text(encoding="utf-8") assert 'GIT_HOST="git.ramonbesselink.nl"' in tekst