From ca5d0d22f3a27014df40198685cdbdd373664aa6 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Tue, 9 Dec 2025 17:53:10 +0100 Subject: [PATCH] feat(test): make unittest pattern configurable and pass TEST_PATTERN into containers This update introduces a configurable TEST_PATTERN variable in the Makefile, allowing selective execution of unit, integration, and E2E tests without modifying scripts. Key changes: - Add TEST_PATTERN (default: test_*.py) to Makefile and export it. - Inject TEST_PATTERN into all test containers via `-e TEST_PATTERN=...`. - Update test-unit.sh, test-integration.sh, and test-e2e.sh to use `-p "$TEST_PATTERN"` instead of a hardcoded pattern. - Ensure flexible test selection via: make test-e2e TEST_PATTERN=test_install_pkgmgr_shallow.py This enables fast debugging, selective test runs, and better developer experience while keeping full compatibility with CI defaults. https://chatgpt.com/share/69385400-2f14-800f-b093-bb03c8ef9c7f --- Makefile | 6 +++++- scripts/test/test-e2e.sh | 3 ++- scripts/test/test-integration.sh | 3 ++- scripts/test/test-unit.sh | 3 ++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 7ba4dff..d482ad6 100644 --- a/Makefile +++ b/Makefile @@ -12,7 +12,7 @@ NIX_CACHE_VOLUME := pkgmgr_nix_cache # Distro list and base images # (kept for documentation/reference; actual build logic is in scripts/build) # ------------------------------------------------------------ -DISTROS := arch debian ubuntu fedora centos +DISTROS := arch debian ubuntu fedora centos BASE_IMAGE_ARCH := archlinux:latest BASE_IMAGE_DEBIAN := debian:stable-slim BASE_IMAGE_UBUNTU := ubuntu:latest @@ -27,6 +27,10 @@ export BASE_IMAGE_UBUNTU export BASE_IMAGE_FEDORA export BASE_IMAGE_CENTOS +# PYthon Unittest Pattern +TEST_PATTERN := test_*.py +export TEST_PATTERN + # ------------------------------------------------------------ # PKGMGR setup (developer wrapper -> scripts/installation/main.sh) # ------------------------------------------------------------ diff --git a/scripts/test/test-e2e.sh b/scripts/test/test-e2e.sh index 256f2ff..aeb758e 100755 --- a/scripts/test/test-e2e.sh +++ b/scripts/test/test-e2e.sh @@ -18,6 +18,7 @@ for distro in $DISTROS; do $MOUNT_NIX \ -v "pkgmgr_nix_cache:/root/.cache/nix" \ -e PKGMGR_DEV=1 \ + -e TEST_PATTERN="${TEST_PATTERN}" \ --workdir /src \ --entrypoint bash \ "package-manager-test-$distro" \ @@ -51,6 +52,6 @@ for distro in $DISTROS; do nix develop .#default --no-write-lock-file -c \ python3 -m unittest discover \ -s /src/tests/e2e \ - -p "test_*.py"; + -p "$TEST_PATTERN"; ' done diff --git a/scripts/test/test-integration.sh b/scripts/test/test-integration.sh index 54f016a..5d336e1 100755 --- a/scripts/test/test-integration.sh +++ b/scripts/test/test-integration.sh @@ -10,6 +10,7 @@ docker run --rm \ -v "pkgmgr_nix_cache:/root/.cache/nix" \ --workdir /src \ -e PKGMGR_DEV=1 \ + -e TEST_PATTERN="${TEST_PATTERN}" \ --entrypoint bash \ "package-manager-test-arch" \ -c ' @@ -19,5 +20,5 @@ docker run --rm \ python -m unittest discover \ -s tests/integration \ -t /src \ - -p "test_*.py"; + -p "$TEST_PATTERN"; ' diff --git a/scripts/test/test-unit.sh b/scripts/test/test-unit.sh index f4a10c2..71a1d75 100755 --- a/scripts/test/test-unit.sh +++ b/scripts/test/test-unit.sh @@ -10,6 +10,7 @@ docker run --rm \ -v "pkgmgr_nix_cache:/root/.cache/nix" \ --workdir /src \ -e PKGMGR_DEV=1 \ + -e TEST_PATTERN="${TEST_PATTERN}" \ --entrypoint bash \ "package-manager-test-arch" \ -c ' @@ -19,5 +20,5 @@ docker run --rm \ python -m unittest discover \ -s tests/unit \ -t /src \ - -p "test_*.py"; + -p "$TEST_PATTERN"; '