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 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01C7oLCRYzY5ixJ5Sv8Y8EFb
This commit is contained in:
parent
2862f7844c
commit
0bc944de5f
2 changed files with 35 additions and 1 deletions
|
|
@ -140,7 +140,7 @@ controleer_systeem() {
|
||||||
bepaal_rechten
|
bepaal_rechten
|
||||||
[ "$(uname -s)" = "Linux" ] || waarschuw "Dit script is voor Linux; op $(uname -s) is het onbeproefd."
|
[ "$(uname -s)" = "Linux" ] || waarschuw "Dit script is voor Linux; op $(uname -s) is het onbeproefd."
|
||||||
for hulp in curl tar; do
|
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
|
done
|
||||||
goed "$(uname -s) $(uname -m)"
|
goed "$(uname -s) $(uname -m)"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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}"
|
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():
|
def test_verwijst_naar_het_juiste_git_domein():
|
||||||
tekst = SCRIPT.read_text(encoding="utf-8")
|
tekst = SCRIPT.read_text(encoding="utf-8")
|
||||||
assert 'GIT_HOST="git.ramonbesselink.nl"' in tekst
|
assert 'GIT_HOST="git.ramonbesselink.nl"' in tekst
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue