test: dont fail on githook symlinks
Since introducing git hooks, these tests fail locally because copytree can't handle the relative symlinks. Add a helper for this common pattern and set ignore_dangling_symlinks to safely skip these symlinks. Signed-off-by: Caleb Connolly <kc@postmarketos.org> Reviewed-by: Oliver Smith <ollieparanoid@postmarketos.org> Link: https://lists.sr.ht/~postmarketos/pmbootstrap-devel/%3C20230629-suffix-type-hint-v1-2-e92802ae20a8@postmarketos.org%3E
This commit is contained in:
parent
1a00c04f74
commit
d32be64820
|
@ -5,6 +5,7 @@ import os
|
||||||
|
|
||||||
import pmb.helpers.git
|
import pmb.helpers.git
|
||||||
import pmb.helpers.run
|
import pmb.helpers.run
|
||||||
|
import shutil
|
||||||
|
|
||||||
|
|
||||||
def prepare_tmpdir(args, monkeypatch, tmpdir):
|
def prepare_tmpdir(args, monkeypatch, tmpdir):
|
||||||
|
@ -59,3 +60,6 @@ def prepare_tmpdir(args, monkeypatch, tmpdir):
|
||||||
monkeypatch.setattr(pmb.helpers.git, "get_upstream_remote", get_u_r)
|
monkeypatch.setattr(pmb.helpers.git, "get_upstream_remote", get_u_r)
|
||||||
|
|
||||||
return path_local, run_git
|
return path_local, run_git
|
||||||
|
|
||||||
|
def copy_dotgit(args, tmpdir):
|
||||||
|
shutil.copytree(args.aports + "/.git", tmpdir + "/.git", ignore_dangling_symlinks=True)
|
||||||
|
|
|
@ -7,6 +7,7 @@ import shutil
|
||||||
import filecmp
|
import filecmp
|
||||||
|
|
||||||
import pmb_test
|
import pmb_test
|
||||||
|
import pmb_test.git
|
||||||
import pmb_test.const
|
import pmb_test.const
|
||||||
import pmb.aportgen
|
import pmb.aportgen
|
||||||
import pmb.aportgen.core
|
import pmb.aportgen.core
|
||||||
|
@ -30,7 +31,7 @@ def args(tmpdir, request):
|
||||||
def test_aportgen_compare_output(args, tmpdir, monkeypatch):
|
def test_aportgen_compare_output(args, tmpdir, monkeypatch):
|
||||||
# Fake aports folder in tmpdir
|
# Fake aports folder in tmpdir
|
||||||
tmpdir = str(tmpdir)
|
tmpdir = str(tmpdir)
|
||||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||||
args.aports = tmpdir
|
args.aports = tmpdir
|
||||||
os.mkdir(tmpdir + "/cross")
|
os.mkdir(tmpdir + "/cross")
|
||||||
testdata = pmb_test.const.testdata + "/aportgen"
|
testdata = pmb_test.const.testdata + "/aportgen"
|
||||||
|
@ -53,7 +54,7 @@ def test_aportgen_compare_output(args, tmpdir, monkeypatch):
|
||||||
def test_aportgen_fork_alpine_compare_output(args, tmpdir, monkeypatch):
|
def test_aportgen_fork_alpine_compare_output(args, tmpdir, monkeypatch):
|
||||||
# Fake aports folder in tmpdir
|
# Fake aports folder in tmpdir
|
||||||
tmpdir = str(tmpdir)
|
tmpdir = str(tmpdir)
|
||||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||||
args.aports = tmpdir
|
args.aports = tmpdir
|
||||||
os.mkdir(tmpdir + "/temp")
|
os.mkdir(tmpdir + "/temp")
|
||||||
testdata = pmb_test.const.testdata + "/aportgen"
|
testdata = pmb_test.const.testdata + "/aportgen"
|
||||||
|
@ -77,7 +78,7 @@ def test_aportgen(args, tmpdir):
|
||||||
# Fake aports folder in tmpdir
|
# Fake aports folder in tmpdir
|
||||||
testdata = pmb_test.const.testdata
|
testdata = pmb_test.const.testdata
|
||||||
tmpdir = str(tmpdir)
|
tmpdir = str(tmpdir)
|
||||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||||
args.aports = tmpdir
|
args.aports = tmpdir
|
||||||
shutil.copy(f"{testdata}/pmaports.cfg", args.aports)
|
shutil.copy(f"{testdata}/pmaports.cfg", args.aports)
|
||||||
os.mkdir(tmpdir + "/cross")
|
os.mkdir(tmpdir + "/cross")
|
||||||
|
|
|
@ -6,6 +6,7 @@ import sys
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
import pmb_test # noqa
|
import pmb_test # noqa
|
||||||
|
import pmb_test.git
|
||||||
import pmb_test.const
|
import pmb_test.const
|
||||||
import pmb.aportgen
|
import pmb.aportgen
|
||||||
import pmb.config
|
import pmb.config
|
||||||
|
@ -25,7 +26,7 @@ def args(tmpdir, request):
|
||||||
|
|
||||||
# Fake aports folder:
|
# Fake aports folder:
|
||||||
tmpdir = str(tmpdir)
|
tmpdir = str(tmpdir)
|
||||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||||
setattr(args, "_aports_real", args.aports)
|
setattr(args, "_aports_real", args.aports)
|
||||||
args.aports = tmpdir
|
args.aports = tmpdir
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ import shutil
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import pmb_test # noqa
|
import pmb_test # noqa
|
||||||
|
import pmb_test.git
|
||||||
import pmb.build
|
import pmb.build
|
||||||
import pmb.build._package
|
import pmb.build._package
|
||||||
import pmb.config
|
import pmb.config
|
||||||
|
@ -391,7 +392,7 @@ def test_build_local_source_high_level(args, tmpdir):
|
||||||
|
|
||||||
# aports: Add pmaports.cfg, .git
|
# aports: Add pmaports.cfg, .git
|
||||||
shutil.copy(args.aports + "/pmaports.cfg", aports)
|
shutil.copy(args.aports + "/pmaports.cfg", aports)
|
||||||
shutil.copytree(args.aports + "/.git", aports + "/.git")
|
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||||
|
|
||||||
# src: Copy hello-world source files
|
# src: Copy hello-world source files
|
||||||
src = tmpdir + "/src"
|
src = tmpdir + "/src"
|
||||||
|
@ -450,7 +451,7 @@ def test_build_abuild_leftovers(args, tmpdir):
|
||||||
|
|
||||||
# aports: Add pmaports.cfg, .git
|
# aports: Add pmaports.cfg, .git
|
||||||
shutil.copy(f"{args.aports}/pmaports.cfg", aports)
|
shutil.copy(f"{args.aports}/pmaports.cfg", aports)
|
||||||
shutil.copytree(f"{args.aports}/.git", f"{aports}/.git")
|
pmb_test.git.copy_dotgit(args, aports)
|
||||||
|
|
||||||
# aport: create abuild dir with broken symlink
|
# aport: create abuild dir with broken symlink
|
||||||
src = f"{aport}/src"
|
src = f"{aport}/src"
|
||||||
|
|
|
@ -4,10 +4,10 @@
|
||||||
import glob
|
import glob
|
||||||
import os
|
import os
|
||||||
import pytest
|
import pytest
|
||||||
import shutil
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import pmb_test # noqa
|
import pmb_test # noqa
|
||||||
|
import pmb_test.git
|
||||||
import pmb.helpers.pkgrel_bump
|
import pmb.helpers.pkgrel_bump
|
||||||
import pmb.helpers.logging
|
import pmb.helpers.logging
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ def pmbootstrap(args, tmpdir, parameters, zero_exit=True):
|
||||||
# Copy .git dir to fake pmaports
|
# Copy .git dir to fake pmaports
|
||||||
dot_git = tmpdir + "/_aports/.git"
|
dot_git = tmpdir + "/_aports/.git"
|
||||||
if not os.path.exists(dot_git):
|
if not os.path.exists(dot_git):
|
||||||
shutil.copytree(args.aports + "/.git", dot_git)
|
pmb_test.git.copy_dotgit(args, aports)
|
||||||
|
|
||||||
try:
|
try:
|
||||||
pmb.helpers.run.user(args, ["./pmbootstrap.py", "--work=" + tmpdir,
|
pmb.helpers.run.user(args, ["./pmbootstrap.py", "--work=" + tmpdir,
|
||||||
|
|
Loading…
Reference in New Issue