37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
|
|
"""Regression tests for per-call Honcho tool session routing."""
|
||
|
|
|
||
|
|
import json
|
||
|
|
from unittest.mock import MagicMock
|
||
|
|
|
||
|
|
from tools import honcho_tools
|
||
|
|
|
||
|
|
|
||
|
|
class TestHonchoToolSessionContext:
|
||
|
|
def setup_method(self):
|
||
|
|
self.orig_manager = honcho_tools._session_manager
|
||
|
|
self.orig_key = honcho_tools._session_key
|
||
|
|
|
||
|
|
def teardown_method(self):
|
||
|
|
honcho_tools._session_manager = self.orig_manager
|
||
|
|
honcho_tools._session_key = self.orig_key
|
||
|
|
|
||
|
|
def test_explicit_call_context_wins_over_module_global_state(self):
|
||
|
|
global_manager = MagicMock()
|
||
|
|
global_manager.get_peer_card.return_value = ["global"]
|
||
|
|
explicit_manager = MagicMock()
|
||
|
|
explicit_manager.get_peer_card.return_value = ["explicit"]
|
||
|
|
|
||
|
|
honcho_tools.set_session_context(global_manager, "global-session")
|
||
|
|
|
||
|
|
result = json.loads(
|
||
|
|
honcho_tools._handle_honcho_profile(
|
||
|
|
{},
|
||
|
|
honcho_manager=explicit_manager,
|
||
|
|
honcho_session_key="explicit-session",
|
||
|
|
)
|
||
|
|
)
|
||
|
|
|
||
|
|
assert result == {"result": ["explicit"]}
|
||
|
|
explicit_manager.get_peer_card.assert_called_once_with("explicit-session")
|
||
|
|
global_manager.get_peer_card.assert_not_called()
|