mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-27 01:11:40 +00:00
39 lines
1.3 KiB
Python
39 lines
1.3 KiB
Python
import pytest
|
|
|
|
from tools.environments import ssh as ssh_env
|
|
|
|
|
|
def test_ensure_ssh_available_raises_clear_error_when_missing(monkeypatch):
|
|
monkeypatch.setattr(ssh_env.shutil, "which", lambda _name: None)
|
|
|
|
with pytest.raises(RuntimeError, match="SSH is not installed or not in PATH"):
|
|
ssh_env._ensure_ssh_available()
|
|
|
|
|
|
def test_ssh_environment_checks_availability_before_connect(monkeypatch):
|
|
monkeypatch.setattr(ssh_env.shutil, "which", lambda _name: None)
|
|
monkeypatch.setattr(
|
|
ssh_env.SSHEnvironment,
|
|
"_establish_connection",
|
|
lambda self: pytest.fail("_establish_connection should not run when ssh is missing"),
|
|
)
|
|
|
|
with pytest.raises(RuntimeError, match="openssh-client"):
|
|
ssh_env.SSHEnvironment(host="example.com", user="alice")
|
|
|
|
|
|
def test_ssh_environment_connects_when_ssh_exists(monkeypatch):
|
|
called = {"count": 0}
|
|
|
|
monkeypatch.setattr(ssh_env.shutil, "which", lambda _name: "/usr/bin/ssh")
|
|
|
|
def _fake_establish(self):
|
|
called["count"] += 1
|
|
|
|
monkeypatch.setattr(ssh_env.SSHEnvironment, "_establish_connection", _fake_establish)
|
|
|
|
env = ssh_env.SSHEnvironment(host="example.com", user="alice")
|
|
|
|
assert called["count"] == 1
|
|
assert env.host == "example.com"
|
|
assert env.user == "alice"
|