40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
import pytest
|
|
import time
|
|
import sys
|
|
import os
|
|
|
|
# Ensure project root is in path
|
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), "..")))
|
|
|
|
from api_hook_client import ApiHookClient
|
|
|
|
@pytest.mark.integration
|
|
def test_mma_epic_simulation(live_gui):
|
|
"""
|
|
Integration test for MMA epic simulation.
|
|
Red Phase: asserts False.
|
|
"""
|
|
client = ApiHookClient()
|
|
assert client.wait_for_server(timeout=10)
|
|
# Try selecting MMA Dashboard tab if applicable (using typical naming convention)
|
|
try:
|
|
client.select_tab('main_tab_bar', 'tab_mma')
|
|
except Exception:
|
|
pass
|
|
# Set model to mock to avoid real API calls and timeouts
|
|
try:
|
|
client.set_value('current_model', 'mock')
|
|
except Exception:
|
|
pass
|
|
client.set_value('mma_epic_input', 'Build a simple calculator')
|
|
client.click('btn_mma_plan_epic')
|
|
# Poll client.get_mma_status() every 1 second (up to 30 seconds)
|
|
success = False
|
|
for i in range(30):
|
|
status = client.get_mma_status()
|
|
if status and status.get('tracks') and len(status['tracks']) > 0:
|
|
success = True
|
|
break
|
|
time.sleep(1)
|
|
assert success, "Failed to generate at least one track."
|