mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-18 04:41:56 +00:00
Extract PATH building into _build_service_path_dirs() that skips directories which don't exist on disk (e.g. node_modules/.bin for pip installs) and also includes ~/.hermes/node/bin and ~/.hermes/node_modules/.bin for agent-browser.
31 lines
1.4 KiB
Python
31 lines
1.4 KiB
Python
from pathlib import Path
|
|
from unittest.mock import patch
|
|
|
|
|
|
def test_service_path_skips_nonexistent_node_modules(tmp_path):
|
|
"""Service PATH should not include node_modules/.bin if it doesn't exist."""
|
|
from hermes_cli.gateway import _build_service_path_dirs
|
|
with patch("hermes_cli.gateway.get_hermes_home", return_value=tmp_path / ".hermes"):
|
|
dirs = _build_service_path_dirs(project_root=tmp_path)
|
|
node_modules_bin = str(tmp_path / "node_modules" / ".bin")
|
|
assert node_modules_bin not in dirs
|
|
|
|
|
|
def test_service_path_includes_node_modules_when_present(tmp_path):
|
|
"""Service PATH should include node_modules/.bin when it exists."""
|
|
nm_bin = tmp_path / "node_modules" / ".bin"
|
|
nm_bin.mkdir(parents=True)
|
|
from hermes_cli.gateway import _build_service_path_dirs
|
|
with patch("hermes_cli.gateway.get_hermes_home", return_value=tmp_path / ".hermes"):
|
|
dirs = _build_service_path_dirs(project_root=tmp_path)
|
|
assert str(nm_bin) in dirs
|
|
|
|
|
|
def test_service_path_includes_hermes_home_node_modules(tmp_path):
|
|
"""Service PATH should include ~/.hermes/node_modules/.bin when it exists."""
|
|
hermes_nm = tmp_path / ".hermes" / "node_modules" / ".bin"
|
|
hermes_nm.mkdir(parents=True)
|
|
from hermes_cli.gateway import _build_service_path_dirs
|
|
with patch("hermes_cli.gateway.get_hermes_home", return_value=tmp_path / ".hermes"):
|
|
dirs = _build_service_path_dirs(project_root=tmp_path)
|
|
assert str(hermes_nm) in dirs
|