jw-pkg/test/unit/python/jw/pkg/lib
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann 36978c55e2
lib.pm.*.install_packages(): Add functions
Currently, jw-pkg install is sometimes left to the high-level package
manager, which is allowed to install dependencies along, and that's
sometimes unwanted, but there's no backend in the low-level package manager
module lib.pm to allow specifying that. This commit adds it:
lib.pm.*.install_packages().

The functions install a list of local package files using the low-level
package managers rpm / dpkg, bypassing the high-level package managers yum
/ apt / zypper.

pm.rpm runs rpm -U and pm.dpkg runs dpkg -i. Every file is classified
against the installed state of its package, queried by name: a file
for a package that is not installed is installed fresh, a file with
another version installed is upgraded, and a file whose version is already
installed is reinstalled when force is set and skipped otherwise. On rpm,
plain -U refuses a package that is already installed, and --reinstall
aborts the transaction when a file of the incoming package differs from
the installed one, so the upgrades run before the reinstalls and the
same-version files need force.

With only_update, a file for a package that is not installed raises before
anything is installed.

The dpkg route is gated on an apt simulation, because dpkg -i leaves a
half-configured package when a dependency is missing: the simulation runs
first and the install is refused when it would install or remove anything
but the given files' own packages.

Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.4.0
Signed-off-by: Jan Lindemann <jan@janware.com>
2026-10-28 20:14:55 +01:00
..
App test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
Distro lib.Package: Add and fill version field 2026-10-28 20:14:55 +01:00
ec lib.ec.secret_store.Vault: Add the store class 2026-10-17 14:16:02 +02:00
ExecApp test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
FcCache lib.FcCache: Add a write-through read cache 2026-10-17 12:17:21 +02:00
FcWrapper lib.FcWrapper: Add a delegating file context wrapper 2026-10-17 12:17:21 +02:00
file_types lib.Package: Add and fill version field 2026-10-28 20:14:55 +01:00
Package lib.Package: Add and fill version field 2026-10-28 20:14:55 +01:00
PackageFilter lib.PackageFilter: Add unit tests 2026-09-14 20:53:00 +02:00
pm lib.pm.*.install_packages(): Add functions 2026-10-28 20:14:55 +01:00
ProcFilter lib.ProcFilter: Add unit tests 2026-09-14 20:52:59 +02:00
ProjectConf test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
Result test: apply yapf formatting to test.py files 2026-07-04 07:35:17 +02:00
TarIo lib.TarIo: Add unit tests 2026-09-14 20:53:00 +02:00
Uri lib.Uri: Fix __assemble(): No '://' for relative paths 2026-09-05 14:01:46 +02:00
util lib.util.copy(): Add parents flag parameter 2026-10-17 11:47:06 +02:00
version lib.version.Dependency.__version_boundaries(): Use Version.next() 2026-09-15 21:43:47 +02:00
Makefile test: Move unit tests below jw/pkg 2026-06-25 20:57:05 +02:00