Files
manual_slop/tests/test_conductor_api_hook_integration.py
2026-03-05 14:07:04 -05:00

50 lines
1.9 KiB
Python

import pytest
from unittest.mock import patch, MagicMock
import time
from src.api_hook_client import ApiHookClient
def simulate_conductor_phase_completion(client: ApiHookClient, track_id: str, phase_name: str) -> bool:
"""
Simulates the Conductor agent's logic for phase completion using ApiHookClient.
"""
try:
# 1. Poll for state
state = client.get_gui_state()
if not state: return False
# 2. Verify track matches
if state.get("active_track_id") != track_id:
return False
# 3. Simulate verification via API hook (e.g., check list box or indicator)
# (Placeholder for complex logic)
return True
except Exception:
return False
def test_conductor_integrates_api_hook_client_for_verification(live_gui) -> None:
"""Verify that Conductor's simulated phase completion logic properly integrates
with the ApiHookClient and the live Hook Server."""
client = ApiHookClient()
assert client.wait_for_server(timeout=10)
# Mock expected state for the simulation
# Note: In a real test we would drive the GUI to this state
with patch.object(client, "get_gui_state", return_value={"active_track_id": "test_track_123"}):
result = simulate_conductor_phase_completion(client, "test_track_123", "Phase 1")
assert result is True
def test_conductor_handles_api_hook_failure() -> None:
"""Verify Conductor handles a simulated API hook verification failure."""
client = ApiHookClient()
with patch.object(client, "get_gui_state", return_value=None):
result = simulate_conductor_phase_completion(client, "any", "any")
assert result is False
def test_conductor_handles_api_hook_connection_error() -> None:
"""Verify Conductor handles a simulated API hook connection error (server down)."""
client = ApiHookClient(base_url="http://127.0.0.1:9999") # Invalid port
result = simulate_conductor_phase_completion(client, "any", "any")
assert result is False