test_reasoning_effort_menu.py
1 import sys 2 import types 3 4 5 from hermes_cli.main import _prompt_reasoning_effort_selection 6 7 8 class _FakeTerminalMenu: 9 last_choices = None 10 11 def __init__(self, choices, **kwargs): 12 _FakeTerminalMenu.last_choices = choices 13 self._cursor_index = kwargs.get("cursor_index") 14 15 def show(self): 16 return self._cursor_index 17 18 19 def test_reasoning_menu_orders_minimal_before_low(monkeypatch): 20 fake_module = types.SimpleNamespace(TerminalMenu=_FakeTerminalMenu) 21 monkeypatch.setitem(sys.modules, "simple_term_menu", fake_module) 22 23 selected = _prompt_reasoning_effort_selection( 24 ["low", "minimal", "medium", "high"], 25 current_effort="medium", 26 ) 27 28 assert selected == "medium" 29 assert _FakeTerminalMenu.last_choices[:4] == [ 30 " minimal", 31 " low", 32 " medium ← currently in use", 33 " high", 34 ]