mirror of
https://github.com/headroomlabs-ai/headroom.git
synced 2026-08-27 14:17:10 -04:00
Centralize Docker / CI e2e test helpers so per-command suites can be declarative and future commands (install, wrap, ...) can reuse the same shim/PATH/assertion primitives without duplicating infrastructure. The harness provides: * Case dataclass describing one test as argv + shims + expected exit / stdout / stderr / files / custom callbacks * make_shim() factory producing cross-platform executable shims (.sh on POSIX, .cmd on Windows) with noop / fail / record-args behaviors * with_clean_path() context manager that isolates PATH to a minimal known-good value plus any extras supplied by the case * agent_settings_path() locator mirroring headroom.cli.init so tests can assert the right file was written without touching private init state * run_cases() for independent cases and run_case_sequence() for cases that must share scratch state (e.g. manifest-merge scenarios) Shell / PowerShell shim-creation scripts are also shipped for CI steps that need to drop a shim without spinning up Python first. No behavior change in this commit - pure infrastructure. The init suite and new subcommand suites consume the harness in follow-up commits. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| assertions.py | ||
| harness.py | ||
| make_shim.ps1 | ||
| make_shim.sh | ||
| path_env.py | ||
| paths.py | ||
| shims.py | ||