Files
hermes-webui/tests/test_issue926_hindsight_docker_dependency.py
T
nesquena-hermes 69bf2878bc v0.50.224: legacy @provider session models, Docker Hindsight dependency (#1131)
* Fix legacy at-provider session models

* Fix Hindsight dependency in Docker WebUI venv

---------

Co-authored-by: Frank Song <franksong2702@gmail.com>
2026-04-26 18:47:38 -07:00

33 lines
1.4 KiB
Python

"""Regression tests for #926 Hindsight dependency in Docker WebUI venv."""
import pathlib
REPO_ROOT = pathlib.Path(__file__).parent.parent
INIT_SH = (REPO_ROOT / "docker_init.bash").read_text(encoding="utf-8")
REQUIREMENTS_TXT = (REPO_ROOT / "requirements.txt").read_text(encoding="utf-8")
def test_926_docker_init_installs_hindsight_distribution():
"""Docker init must install the PyPI distribution named hindsight-client."""
assert "uv pip show hindsight-client" in INIT_SH
assert '"hindsight-client>=0.4.22"' in INIT_SH
assert 'uv pip install "${_hindsight_client_requirement}"' in INIT_SH
def test_926_hindsight_install_runs_after_fast_restart_guard():
"""Existing Docker venvs with .deps_installed must still get hindsight-client."""
deps_guard_pos = INIT_SH.find("if [ -f /app/venv/.deps_installed ]; then")
assert deps_guard_pos != -1, ".deps_installed fast-restart guard not found"
expected_sequence = "\nfi\n\nensure_hindsight_client_docker_dependency\n"
call_after_guard_pos = INIT_SH.find(expected_sequence, deps_guard_pos)
assert call_after_guard_pos != -1, (
"hindsight-client install check must run outside the .deps_installed guard "
"so old Docker venvs self-heal on fast restart"
)
def test_926_hindsight_dependency_stays_docker_specific():
"""Local non-Docker bootstrap should not install optional memory clients."""
assert "hindsight-client" not in REQUIREMENTS_TXT