jw-pkg/test/unit/python/jw/pkg/lib
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jan Lindemann f70cc48eb6
All checks were successful
CI / Packaging - Kali Linux (pull_request) Successful in 4m32s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Successful in 4m52s
CI / Packaging test (pull_request) Successful in 0s
CI / Packaging - Kali Linux (push) Successful in 4m35s
CI / Packaging - OpenSUSE Tumbleweed (push) Successful in 5m17s
CI / Packaging test (push) Successful in 0s
lib.ec.secret_store.TarGpg: Add the write path
The TarGpg store is read-only: put() and unlink() raise, so the store can
be copied from, but not into, and a copy that lands entries and blobs below
a host prefix has no tarball target.

This matches the way jw-pkg secrets has worked for a long time. Since
Stores are now FileContext-backed, a write path can be cleanly implemented,
and that's what this commit does.

A put rebuilds the tarball: the existing members minus the removed, plus
the written one; the result is signed with the recipient from
JW_SECRETS_TARGPG_RECIPIENT and written back to the tarball location, which
must be a local path. A missing tarball is an empty store, so a put creates
it.

The put dispatch follows the other stores: a typed entry put replaces the
entry with the given serialized content, a key put merges into its entry,
creating it if it does not exist yet, and an untyped put below an entry
lands a key there, otherwise a blob. unlink() removes the node's member.

Signed-off-by: Jan Lindemann <jan@janware.com>
Assisted-by: unsloth/Qwen3.8-27B-GGUF:Q4_K_M with pi.dev v1.1.0
2026-10-17 13:09:45 +02:00
..
App test: Fix mypy strict errors in unit tests 2026-09-13 15:42:29 +02:00
Distro lib.Distro.verify(): Add method 2026-10-16 09:40:22 +02:00
ec lib.ec.secret_store.TarGpg: Add the write path 2026-10-17 13:09:45 +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
Package lib.Package: Add unit tests 2026-09-14 20:52:59 +02:00
PackageFilter lib.PackageFilter: Add unit tests 2026-09-14 20:53:00 +02:00
pm cmds.pkg.CmdVerify: Add command 2026-10-16 09:40:22 +02: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