furtka/tests
Robert Syrnicki 91f2d6304c Fix wireguard.status()/set_tunnel_enabled() crash on unreadable conf path
Found by actually running furtka serve and clicking through the new
Settings UI: /api/gateway/status crashed the whole request with a raw
PermissionError traceback because conf_path.is_file() doesn't swallow
every OSError (confirmed directly, not assumed) when the parent directory
isn't accessible. A read-only status check must degrade to "not
configured" instead of 500ing; set_tunnel_enabled() now raises a clean
WireguardError instead of leaking an unhandled exception.

Also gives wireguard.py an env-var-overridable default path
(FURTKA_WIREGUARD_CONF / default_conf_path()), matching every other
runtime path in the codebase, instead of a single hardcoded constant.
2026-08-24 14:57:11 +02:00
..
test_api.py Add gateway connect/disconnect and per-app internet-toggle API endpoints 2026-08-24 13:35:44 +02:00
test_app.py feat(furtka): serve from /opt/furtka/current, retire /srv/furtka/www/ 2026-04-16 13:15:59 +02:00
test_auth.py feat(auth): rate-limit failed logins with per-(user, IP) lockout 2026-04-22 17:27:14 +02:00
test_catalog.py Add internet.viable manifest field and its catalog-side privileged gate 2026-08-24 13:08:55 +02:00
test_cli.py Add gateway connect/disconnect and per-app internet-toggle API endpoints 2026-08-24 13:35:44 +02:00
test_deps.py chore: ruff format 2026-05-11 20:10:04 +02:00
test_dockerops.py chore: ruff format 2026-05-11 20:10:04 +02:00
test_drives.py feat(installer): filter the boot USB out of the install drive picker 2026-04-28 12:09:19 +02:00
test_gateway.py Add gateway connect/disconnect and per-app internet-toggle API endpoints 2026-08-24 13:35:44 +02:00
test_https.py fix(https): make HTTPS opt-in to stop the BAD_SIGNATURE trap on fresh installs 2026-04-21 19:30:04 +02:00
test_install_runner.py chore: ruff format 2026-05-11 20:10:04 +02:00
test_installer.py feat(apps): app-to-app dependencies with install + start hooks 2026-05-11 19:39:10 +02:00
test_manifest.py Add internet.viable manifest field and its catalog-side privileged gate 2026-08-24 13:08:55 +02:00
test_passwd.py fix: unbreak upgrade path + install-lock race 2026-04-21 17:03:28 +02:00
test_reconciler.py fix(deps): give on_start hooks the consumer's stored credentials 2026-05-28 23:45:42 +02:00
test_scanner.py feat(furtka): resource-manager skeleton — manifest, scanner, CLI 2026-04-15 09:59:41 +02:00
test_sources.py feat(catalog): on-box apps catalog synced independently of core version 2026-04-20 14:16:02 +02:00
test_updater.py fix: unbreak upgrade path + install-lock race 2026-04-21 17:03:28 +02:00
test_webinstaller_assets.py fix(https): make HTTPS opt-in to stop the BAD_SIGNATURE trap on fresh installs 2026-04-21 19:30:04 +02:00
test_wireguard.py Fix wireguard.status()/set_tunnel_enabled() crash on unreadable conf path 2026-08-24 14:57:11 +02:00