hermes-agent/tests/hermes_cli/test_setup_matrix_e2ee.py
alt-glitch a1e667b9f2 fix(restructure): fix test regressions from import rewrite
Fix variable name breakage (run_agent, hermes_constants, etc.) where
import rewriter changed 'import X' to 'import hermes_agent.Y' but
test code still referenced 'X' as a variable name.

Fix package-vs-module confusion (cli.auth, cli.models, cli.ui) where
single files became directories.

Fix hardcoded file paths in tests pointing to old locations.
Fix tool registry to discover tools in subpackage directories.
Fix stale import in hermes_agent/tools/__init__.py.

Part of #14182, #14183
2026-04-23 12:05:10 +05:30

31 lines
1 KiB
Python

"""Test that setup.py has shutil available for Matrix E2EE auto-install."""
import ast
import pytest
def _parse_setup_imports():
"""Parse setup.py and return top-level import names."""
with open("hermes_agent/cli/setup_wizard.py") as f:
tree = ast.parse(f.read())
names = set()
for node in ast.walk(tree):
if isinstance(node, ast.Import):
for alias in node.names:
names.add(alias.name)
elif isinstance(node, ast.ImportFrom):
for alias in node.names:
names.add(alias.name)
return names
class TestSetupShutilImport:
def test_shutil_imported_at_module_level(self):
"""shutil must be imported at module level so setup_gateway can use it
for the mautrix auto-install path."""
names = _parse_setup_imports()
assert "shutil" in names, (
"shutil is not imported at the top of hermes_cli/setup.py. "
"This causes a NameError when the Matrix E2EE auto-install "
"tries to call shutil.which('uv')."
)