/ tests / hermes_cli / test_reasoning_effort_menu.py
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      ]