38 lines
1.3 KiB
Python
38 lines
1.3 KiB
Python
|
|
import os
|
||
|
|
from tests.e2e._util import run
|
||
|
|
import tempfile
|
||
|
|
import unittest
|
||
|
|
from pathlib import Path
|
||
|
|
|
||
|
|
|
||
|
|
class TestPkgmgrInstallThreeTimesNix(unittest.TestCase):
|
||
|
|
def test_three_times_install_nix(self):
|
||
|
|
with tempfile.TemporaryDirectory(prefix="pkgmgr-nix-") as tmp:
|
||
|
|
tmp_path = Path(tmp)
|
||
|
|
|
||
|
|
env = os.environ.copy()
|
||
|
|
env["HOME"] = tmp
|
||
|
|
|
||
|
|
# Ensure nix is found
|
||
|
|
env["PATH"] = "/nix/var/nix/profiles/default/bin:" + os.environ.get("PATH", "")
|
||
|
|
|
||
|
|
# IMPORTANT:
|
||
|
|
# nix run uses git+file:///src internally -> Git will reject /src if it's not a safe.directory.
|
||
|
|
# Our test sets HOME to a temp dir, so we must provide a temp global gitconfig.
|
||
|
|
gitconfig = tmp_path / ".gitconfig"
|
||
|
|
gitconfig.write_text(
|
||
|
|
"[safe]\n"
|
||
|
|
"\tdirectory = /src\n"
|
||
|
|
"\tdirectory = /src/.git\n"
|
||
|
|
"\tdirectory = *\n"
|
||
|
|
)
|
||
|
|
env["GIT_CONFIG_GLOBAL"] = str(gitconfig)
|
||
|
|
|
||
|
|
for i in range(1, 4):
|
||
|
|
print(f"\n=== RUN {i}/3 ===")
|
||
|
|
run(
|
||
|
|
"nix run .#pkgmgr -- install pkgmgr --update --clone-mode shallow --no-verification",
|
||
|
|
env=env,
|
||
|
|
shell=True,
|
||
|
|
)
|