Compare commits

..

1 commit

Author SHA1 Message Date
6ab084ff44
test/ .. /help: Fail over missing toplevel "make all"
Some checks failed
CI / Packaging - Kali Linux (pull_request) Failing after 3m35s
CI / Packaging - OpenSUSE Tumbleweed (pull_request) Failing after 3m33s
CI / Packaging test (pull_request) Failing after 0s

The help integration test currently only succeeds because CI doesn't run "make all" before "make test". That way, the checked out repository lacks the generated __init__.py files needed for some modular subcommands to be fully loaded, and hence, the test should have failed. The entire machinery only worked because the subcommands in question are not not essential to building jw-pkg itself: "secrets" and "posix"

The fix is to

1. Change CI to run "make all" before "make test" (not here) 2. Fix the test in jw-pkg

Signed-off-by: Jan Lindemann <jan@janware.com>
2026-06-25 17:35:49 +02:00
7 changed files with 1 additions and 110 deletions

View file

@ -81,12 +81,12 @@ cmd_create_init()
echo "import `module_path $f` as $f"
__add_seen $f
done
echo
fi
if [ ${#seen[@]} -eq 0 ]; then
echo "__all__ = []"
else
echo
echo "__all__ = ["
for dst_type in ${!seen[@]}; do
echo " \"$dst_type\","

View file

@ -1,6 +1,4 @@
TOPDIR = ..
ORDERED_SUBDIRS = unit integration
include $(TOPDIR)/make/proj.mk
include $(JWBDIR)/make/dirs.mk

View file

@ -1,4 +0,0 @@
TOPDIR = ../..
include $(TOPDIR)/make/proj.mk
include $(JWBDIR)/make/dirs.mk

View file

@ -1,4 +0,0 @@
TOPDIR = ../../..
include $(TOPDIR)/make/proj.mk
include $(JWBDIR)/make/dirs.mk

View file

@ -1,4 +0,0 @@
TOPDIR = ../../../..
include $(TOPDIR)/make/proj.mk
include $(JWBDIR)/make/dirs.mk

View file

@ -1,7 +0,0 @@
TOPDIR = ../../../../../
include $(TOPDIR)/make/proj.mk
include $(JWBDIR)/make/py-run.mk
all:
test: run

View file

@ -1,88 +0,0 @@
import sys, os
# Mirror the source tree structure so imports resolve correctly
src_root = os.path.join(os.path.dirname(__file__), '..', '..', '..', '..', 'src', 'python')
sys.path.insert(0, src_root)
from jw.pkg.lib.Uri import Uri
# Basic URL parsing
u = Uri('ssh://john.doe@host:22/path/to/repo')
assert u.protocol == 'ssh'
assert u.hostname == 'host'
assert u.port == 22
assert u.path == '/path/to/repo'
# Username and password
u = Uri('https://user:pass@example.com/repo')
assert u.username == 'user'
assert u.password == 'pass'
# Credentials in output
u = Uri('https://user:secret@example.com/repo')
assert 'secret' in u.full # full shows password
assert '<hidden>' in u.safe_full_with_username # safe version hides password
# Scheme defaults to file
u = Uri('/local/path')
assert u.scheme == 'file://'
assert u.protocol == 'file'
# Pimp returns existing Uri unchanged
u1 = Uri('ssh://host/path')
u2 = Uri.pimp(u1)
assert u2 is u1
# New with path (add)
u = Uri('ssh://host/path')
u2 = u.new_add_path('subdir')
assert u2.to_string == 'ssh://host/path/subdir'
# New with path (replace) - to_string is updated
u3 = u.new_replace_path('/other')
assert u3.to_string == 'ssh://host/other'
# Authority includes credentials
u = Uri('ssh://user:pass@host:22/path')
assert u.authority == 'userpass@host:22'
# Origin excludes credentials
assert u.origin == 'host:22'
# ID and safe version hide password
assert u.id == 'ssh://user:<hidden>@host:22'
assert '<hidden>' in u.safe_full_with_username
# Full includes path and credentials
assert u.full == 'ssh://userpass@host:22/path'
# Simple URLs
u = Uri('https://example.com/repo.git')
assert u.hostname == 'example.com'
assert u.path == '/repo.git'
assert u.basename == 'repo.git'
# Username setter
u = Uri('ssh://host/path')
u.set_username('newuser')
assert u.username == 'newuser'
# Password setter
u = Uri('ssh://host/path')
u.set_password('newpass')
assert u.password == 'newpass'
# No port
u = Uri('ssh://host/path')
assert u.port is None
assert u.port_str is None
# to_string returns original
u = Uri('ssh://user:pass@host:22/path')
assert u.to_string == 'ssh://user:pass@host:22/path'
# String representation hides credentials
u = Uri('https://user:secret@example.com/repo.git')
assert '<hidden>' in str(u)
print('All Uri tests passed')