mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-05-25 05:52:34 +00:00
fix(cli): parse positional insights days
This commit is contained in:
parent
c23a87bc16
commit
a34998ee2f
2 changed files with 46 additions and 0 deletions
3
cli.py
3
cli.py
|
|
@ -8805,6 +8805,9 @@ class HermesCLI:
|
||||||
elif parts[i] == "--source" and i + 1 < len(parts):
|
elif parts[i] == "--source" and i + 1 < len(parts):
|
||||||
source = parts[i + 1]
|
source = parts[i + 1]
|
||||||
i += 2
|
i += 2
|
||||||
|
elif parts[i].isdigit():
|
||||||
|
days = int(parts[i])
|
||||||
|
i += 1
|
||||||
else:
|
else:
|
||||||
i += 1
|
i += 1
|
||||||
|
|
||||||
|
|
|
||||||
43
tests/cli/test_cli_insights_command.py
Normal file
43
tests/cli/test_cli_insights_command.py
Normal file
|
|
@ -0,0 +1,43 @@
|
||||||
|
from unittest.mock import MagicMock, patch
|
||||||
|
|
||||||
|
from cli import HermesCLI
|
||||||
|
|
||||||
|
|
||||||
|
class _InsightsEngineStub:
|
||||||
|
calls = []
|
||||||
|
|
||||||
|
def __init__(self, db):
|
||||||
|
self.db = db
|
||||||
|
|
||||||
|
def generate(self, *, days=30, source=None):
|
||||||
|
self.calls.append({"days": days, "source": source})
|
||||||
|
return {"days": days, "source": source}
|
||||||
|
|
||||||
|
def format_terminal(self, report):
|
||||||
|
return f"days={report['days']} source={report['source']}"
|
||||||
|
|
||||||
|
|
||||||
|
def _run_show_insights(command: str):
|
||||||
|
cli_obj = HermesCLI.__new__(HermesCLI)
|
||||||
|
db = MagicMock()
|
||||||
|
_InsightsEngineStub.calls = []
|
||||||
|
with patch("hermes_state.SessionDB", return_value=db), \
|
||||||
|
patch("agent.insights.InsightsEngine", _InsightsEngineStub):
|
||||||
|
cli_obj._show_insights(command)
|
||||||
|
return _InsightsEngineStub.calls, db
|
||||||
|
|
||||||
|
|
||||||
|
def test_cli_insights_accepts_positional_days(capsys):
|
||||||
|
calls, db = _run_show_insights("/insights 7")
|
||||||
|
|
||||||
|
assert calls == [{"days": 7, "source": None}]
|
||||||
|
db.close.assert_called_once()
|
||||||
|
assert "days=7 source=None" in capsys.readouterr().out
|
||||||
|
|
||||||
|
|
||||||
|
def test_cli_insights_keeps_days_flag_and_source(capsys):
|
||||||
|
calls, db = _run_show_insights("/insights --days 14 --source discord")
|
||||||
|
|
||||||
|
assert calls == [{"days": 14, "source": "discord"}]
|
||||||
|
db.close.assert_called_once()
|
||||||
|
assert "days=14 source=discord" in capsys.readouterr().out
|
||||||
Loading…
Add table
Add a link
Reference in a new issue