hermes-agent/tests/hermes_cli/test_pairing.py
2026-07-29 17:49:33 -05:00

43 lines
1.5 KiB
Python

from argparse import Namespace
from unittest.mock import patch
from gateway.pairing import PairingStore
from hermes_cli.pairing import pairing_command
def test_cli_listed_request_id_and_bot_code_can_be_approved(tmp_path, capsys):
with patch("gateway.pairing.PAIRING_DIR", tmp_path):
store = PairingStore()
store.generate_code("telegram", "listed-user", "Listed User")
with patch("gateway.pairing.PairingStore", return_value=store):
pairing_command(Namespace(pairing_action="list"))
list_output = capsys.readouterr().out
request_id = store.list_pending("telegram")[0]["request_id"]
assert request_id in list_output
pairing_command(
Namespace(
pairing_action="approve",
platform="telegram",
code=request_id,
)
)
request_approval_output = capsys.readouterr().out
bot_code = store.generate_code("telegram", "code-user", "Code User")
pairing_command(
Namespace(
pairing_action="approve",
platform="telegram",
code=bot_code,
)
)
code_approval_output = capsys.readouterr().out
approved_ids = {entry["user_id"] for entry in store.list_approved("telegram")}
assert "listed-user" in request_approval_output
assert "code-user" in code_approval_output
assert approved_ids == {"listed-user", "code-user"}