Files
pkgmgr/tests/e2e/test_install_pkgmgr_three_times_venv.py
Kevin Veen-Birkenbach 7f262c6557
Some checks failed
CI / test-unit (push) Has been cancelled
CI / test-integration (push) Has been cancelled
CI / test-env-virtual (push) Has been cancelled
CI / test-env-nix (push) Has been cancelled
CI / test-e2e (push) Has been cancelled
CI / test-virgin-user (push) Has been cancelled
CI / test-virgin-root (push) Has been cancelled
CI / codesniffer-shellcheck (push) Has been cancelled
CI / codesniffer-ruff (push) Has been cancelled
feat(install): add --update to re-run active-layer installers and improve Nix refresh logic
* Add `force_update` to `RepoContext` and propagate it through install/update flows
* Add `pkgmgr install --update` to force re-running installers even if the same CLI layer is already loaded
* Enhance `NixFlakeInstaller` to ensure correct outputs (pkgmgr + optional default for package-manager) and support refresh/upgrade with index-based fallback remove+reinstall
* Make Python/Makefile installers emit an “upgraded” marker when `force_update` is used
* Add E2E tests for “three times install” scenarios (makefile, nix, venv) with shared run helper
* Fix git safe.directory wildcard quoting in E2E shell runner and minor cleanup/reordering of imports/comments

https://chatgpt.com/share/693db0b4-6ea4-800f-b44a-f03939c7fb9e
2025-12-13 19:30:06 +01:00

35 lines
1.0 KiB
Python

from tests.e2e._util import run
import tempfile
import unittest
from pathlib import Path
import os
class TestPkgmgrInstallThreeTimesVenv(unittest.TestCase):
def test_three_times_install_venv(self):
with tempfile.TemporaryDirectory(prefix="pkgmgr-venv-") as tmp:
home = Path(tmp)
bin_dir = home / ".local" / "bin"
bin_dir.mkdir(parents=True)
env = os.environ.copy()
env["HOME"] = tmp
# pkgmgr kommt aus dem Projekt-venv
env["PATH"] = (
f"{Path.cwd() / '.venv' / 'bin'}:"
f"{bin_dir}:"
+ os.environ.get("PATH", "")
)
# nix explizit deaktivieren → Python/Venv-Pfad
env["PKGMGR_DISABLE_NIX_FLAKE_INSTALLER"] = "1"
for i in range(1, 4):
print(f"\n=== RUN {i}/3 ===")
run(
"pkgmgr install pkgmgr --update --clone-mode shallow --no-verification",
env=env,
shell=True,
)