left4me/l4d2host/tests
mwiegand 434ee20339
refactor(deploy): venv + steam now under /var/lib/left4me
Sync deployment references for the runtime state relocation
shipped via ckn-bw (commit 6fae2fd). /opt/left4me/ is now a
root-owned deploy-artifact root (just src/); .venv and steamcmd
live at /var/lib/left4me/{.venv,steam}.

Touches:
- deploy/files/.../left4me-web.service: PATH + ExecStart
- deploy/files/.../left4me-workshop-refresh.service: WorkingDirectory
  (was /opt/left4me, now /opt/left4me/src to match the web unit),
  PATH, ExecStart
- scripts/sbin/left4me wrapper: flask path
- deploy/tests/test_example_units.py: PATH + ExecStart assertions
  for the web unit; also fix a pre-existing broken assertion that
  read "Environment=PATH=..." (the unit has Environment=HOME=...
  PATH=... on one line, so "Environment=PATH=" was never present)
  - now reads just "PATH=..."
- deploy/README.md: paths
- l4d2host/tests/test_cli.py: LEFT4ME_STEAMCMD fixture path

Design + as-shipped record:
docs/superpowers/specs/2026-05-15-runtime-state-relocation-design.md.
The original (narrower) prereq spec at
docs/superpowers/specs/2026-05-15-handoff-noneditable-install.md
is marked superseded with a pointer to what shipped + why the
scope grew (setuptools writes egg-info to source during PEP 517
build prep).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-15 17:56:32 +02:00
..
test_cli.py refactor(deploy): venv + steam now under /var/lib/left4me 2026-05-15 17:56:32 +02:00
test_initialize.py feat(l4d2-web): per-overlay server.cfg aliases — expose checkbox + auto-exec 2026-05-09 01:26:31 +02:00
test_install.py fix(host): create ~/.steam/sdk32 and sdk64 symlinks during install 2026-05-07 02:11:27 +02:00
test_lifecycle.py refactor(l4d2-host): unmount via ExecStopPost — single code path mirroring mount 2026-05-09 13:09:52 +02:00
test_logging.py feat(host): add step logging to steam_install 2026-05-06 20:41:39 +02:00
test_logs.py feat(deploy): add production-like test deployment 2026-05-06 19:30:10 +02:00
test_overlay_helper.py refactor: move privileged scripts to scripts/{libexec,sbin}/; deploy/ is reference 2026-05-15 12:05:30 +02:00
test_paths.py security: harden boundary inputs and production defaults 2026-05-07 00:53:33 +02:00
test_process.py fix(host): enforce flush=True to prevent pipeline block buffering 2026-05-06 20:34:41 +02:00
test_service_control.py feat(l4d2-host): server lifecycle uses systemctl enable --now / disable --now 2026-05-09 12:28:44 +02:00
test_spec.py feat(l4d2-web): per-overlay server.cfg aliases — expose checkbox + auto-exec 2026-05-09 01:26:31 +02:00
test_status.py feat(deploy): add production-like test deployment 2026-05-06 19:30:10 +02:00