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.run
|
||||
import shutil
|
||||
|
||||
|
||||
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)
|
||||
|
||||
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 pmb_test
|
||||
import pmb_test.git
|
||||
import pmb_test.const
|
||||
import pmb.aportgen
|
||||
import pmb.aportgen.core
|
||||
|
@ -30,7 +31,7 @@ def args(tmpdir, request):
|
|||
def test_aportgen_compare_output(args, tmpdir, monkeypatch):
|
||||
# Fake aports folder in tmpdir
|
||||
tmpdir = str(tmpdir)
|
||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
||||
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||
args.aports = tmpdir
|
||||
os.mkdir(tmpdir + "/cross")
|
||||
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):
|
||||
# Fake aports folder in tmpdir
|
||||
tmpdir = str(tmpdir)
|
||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
||||
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||
args.aports = tmpdir
|
||||
os.mkdir(tmpdir + "/temp")
|
||||
testdata = pmb_test.const.testdata + "/aportgen"
|
||||
|
@ -77,7 +78,7 @@ def test_aportgen(args, tmpdir):
|
|||
# Fake aports folder in tmpdir
|
||||
testdata = pmb_test.const.testdata
|
||||
tmpdir = str(tmpdir)
|
||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
||||
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||
args.aports = tmpdir
|
||||
shutil.copy(f"{testdata}/pmaports.cfg", args.aports)
|
||||
os.mkdir(tmpdir + "/cross")
|
||||
|
|
|
@ -6,6 +6,7 @@ import sys
|
|||
import shutil
|
||||
|
||||
import pmb_test # noqa
|
||||
import pmb_test.git
|
||||
import pmb_test.const
|
||||
import pmb.aportgen
|
||||
import pmb.config
|
||||
|
@ -25,7 +26,7 @@ def args(tmpdir, request):
|
|||
|
||||
# Fake aports folder:
|
||||
tmpdir = str(tmpdir)
|
||||
shutil.copytree(args.aports + "/.git", tmpdir + "/.git")
|
||||
pmb_test.git.copy_dotgit(args, tmpdir)
|
||||
setattr(args, "_aports_real", args.aports)
|
||||
args.aports = tmpdir
|
||||
|
||||
|
|
|
@ -9,6 +9,7 @@ import shutil
|
|||
import sys
|
||||
|
||||
import pmb_test # noqa
|
||||
import pmb_test.git
|
||||
import pmb.build
|
||||
import pmb.build._package
|
||||
import pmb.config
|
||||
|
@ -391,7 +392,7 @@ def test_build_local_source_high_level(args, tmpdir):
|
|||
|
||||
# aports: Add pmaports.cfg, .git
|
||||
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 = tmpdir + "/src"
|
||||
|
@ -450,7 +451,7 @@ def test_build_abuild_leftovers(args, tmpdir):
|
|||
|
||||
# aports: Add pmaports.cfg, .git
|
||||
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
|
||||
src = f"{aport}/src"
|
||||
|
|
|
@ -4,10 +4,10 @@
|
|||
import glob
|
||||
import os
|
||||
import pytest
|
||||
import shutil
|
||||
import sys
|
||||
|
||||
import pmb_test # noqa
|
||||
import pmb_test.git
|
||||
import pmb.helpers.pkgrel_bump
|
||||
import pmb.helpers.logging
|
||||
|
||||
|
@ -39,7 +39,7 @@ def pmbootstrap(args, tmpdir, parameters, zero_exit=True):
|
|||
# Copy .git dir to fake pmaports
|
||||
dot_git = tmpdir + "/_aports/.git"
|
||||
if not os.path.exists(dot_git):
|
||||
shutil.copytree(args.aports + "/.git", dot_git)
|
||||
pmb_test.git.copy_dotgit(args, aports)
|
||||
|
||||
try:
|
||||
pmb.helpers.run.user(args, ["./pmbootstrap.py", "--work=" + tmpdir,
|
||||
|
|
Loading…
Reference in New Issue