Files
manual_slop/tests/test_visual_orchestration.py

51 lines
1.4 KiB
Python

import pytest
import time
import sys
import os
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..", "src")))
from src import api_hook_client
@pytest.mark.integration
def test_mma_epic_lifecycle(live_gui) -> None:
client = api_hook_client.ApiHookClient()
assert client.wait_for_server(timeout=15)
# Reset
client.click("btn_reset")
time.sleep(2)
# Set provider and path
client.set_value("current_provider", "gemini_cli")
time.sleep(2)
mock_path = os.path.abspath("tests/mock_gemini_cli.py")
client.set_value("gcli_path", f'"{sys.executable}" "{mock_path}"')
time.sleep(2)
# Set epic and click
client.set_value("mma_epic_input", "Add timestamps")
time.sleep(1)
client.click("btn_mma_plan_epic")
# Wait and check
for i in range(30):
time.sleep(1)
status = client.get_mma_status()
proposed = status.get("proposed_tracks", [])
usage = status.get("mma_tier_usage", {})
t1 = usage.get("Tier 1", {})
print(
f"[{i}] Tier1: in={t1.get('input')}, out={t1.get('output')}, proposed={len(proposed)}",
flush=True,
)
if proposed:
print(f"SUCCESS: {proposed}", flush=True)
break
assert len(proposed) > 0, f"No tracks: {proposed}"