mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-07 02:51:50 +00:00
test: add regression test for Teams interactive_setup import fix
Adapted from PR #19188 by @LeonSGP43 — mocks cli_output helpers and verifies interactive_setup persists credentials to .env without crashing. Also adds megastary to AUTHOR_MAP.
This commit is contained in:
parent
38adfebe78
commit
54e78cadb2
2 changed files with 26 additions and 1 deletions
|
|
@ -344,6 +344,7 @@ AUTHOR_MAP = {
|
|||
"greer.guthrie@gmail.com": "g-guthrie",
|
||||
"kennyx102@gmail.com": "bobashopcashier",
|
||||
"77253505+bobashopcashier@users.noreply.github.com": "bobashopcashier",
|
||||
"25355950+megastary@users.noreply.github.com": "megastary", # PR #18325
|
||||
"shokatalishaikh95@gmail.com": "areu01or00",
|
||||
"bryan@intertwinesys.com": "bryanyoung",
|
||||
"christo.mitov@gmail.com": "christomitov",
|
||||
|
|
|
|||
|
|
@ -313,9 +313,33 @@ class TestTeamsPluginRegistration:
|
|||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Tests: Connect / Disconnect
|
||||
# Tests: Interactive setup (import fix regression — #18325 / #19173)
|
||||
# ---------------------------------------------------------------------------
|
||||
|
||||
class TestTeamsInteractiveSetup:
|
||||
def test_interactive_setup_persists_credentials(self, tmp_path, monkeypatch):
|
||||
"""Regression for #19173: interactive_setup must import prompt helpers
|
||||
from hermes_cli.cli_output (not hermes_cli.config) and persist
|
||||
credentials to .env without crashing.
|
||||
"""
|
||||
hermes_home = tmp_path / "hermes"
|
||||
monkeypatch.setenv("HERMES_HOME", str(hermes_home))
|
||||
|
||||
import hermes_cli.cli_output as cli_output_mod
|
||||
|
||||
answers = iter(["client-id", "client-secret", "tenant-id", "aad-1, aad-2"])
|
||||
monkeypatch.setattr(cli_output_mod, "prompt", lambda *_a, **_kw: next(answers))
|
||||
monkeypatch.setattr(cli_output_mod, "prompt_yes_no", lambda *_a, **_kw: True)
|
||||
monkeypatch.setattr(cli_output_mod, "print_info", lambda *_a, **_kw: None)
|
||||
monkeypatch.setattr(cli_output_mod, "print_success", lambda *_a, **_kw: None)
|
||||
monkeypatch.setattr(cli_output_mod, "print_warning", lambda *_a, **_kw: None)
|
||||
|
||||
_teams_mod.interactive_setup()
|
||||
|
||||
env_text = (hermes_home / ".env").read_text(encoding="utf-8")
|
||||
assert "TEAMS_CLIENT_ID=client-id" in env_text
|
||||
assert "TEAMS_TENANT_ID=tenant-id" in env_text
|
||||
|
||||
class TestTeamsConnect:
|
||||
@pytest.mark.asyncio
|
||||
async def test_connect_fails_without_sdk(self, monkeypatch):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue