59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
import pytest
|
|
import time
|
|
from src.api_hook_client import ApiHookClient
|
|
|
|
@pytest.mark.timeout(30)
|
|
def test_change_provider_via_hook(live_gui) -> None:
|
|
"""Verify that we can change the current provider via the API hook."""
|
|
client = ApiHookClient()
|
|
if not client.wait_for_server():
|
|
pytest.fail("Server did not become ready")
|
|
|
|
# Change provider to 'anthropic'
|
|
client.set_value('current_provider', 'anthropic')
|
|
|
|
# Wait for state to reflect change
|
|
success = False
|
|
state = {}
|
|
for _ in range(20):
|
|
state = client.get_gui_state()
|
|
if state.get('current_provider') == 'anthropic':
|
|
success = True
|
|
break
|
|
time.sleep(0.5)
|
|
|
|
assert success, f"Provider did not update. Current state: {state}"
|
|
|
|
@pytest.mark.timeout(30)
|
|
def test_set_params_via_custom_callback(live_gui) -> None:
|
|
"""Verify we can use custom_callback to set temperature and max_tokens."""
|
|
client = ApiHookClient()
|
|
if not client.wait_for_server():
|
|
pytest.fail("Server did not become ready")
|
|
|
|
# Set temperature via custom_callback using _set_attr
|
|
client.post_gui({
|
|
"action": "custom_callback",
|
|
"callback": "_set_attr",
|
|
"args": ["temperature", 0.85]
|
|
})
|
|
|
|
# Set max_tokens via custom_callback using _set_attr
|
|
client.post_gui({
|
|
"action": "custom_callback",
|
|
"callback": "_set_attr",
|
|
"args": ["max_tokens", 1024]
|
|
})
|
|
|
|
# Verify via get_gui_state
|
|
success = False
|
|
state = {}
|
|
for _ in range(20):
|
|
state = client.get_gui_state()
|
|
if state.get('temperature') == 0.85 and state.get('max_tokens') == 1024:
|
|
success = True
|
|
break
|
|
time.sleep(0.5)
|
|
|
|
assert success, f"Params did not update via custom_callback. Got: {state}"
|