mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
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
31 lines
1 KiB
Python
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')."
|
|
)
|