"""Exercise real Qt widgets against the ROS host with its fake adapter.""" import os from pathlib import Path import subprocess import sys import textwrap def test_demo_gui_teach_scan_pause_resume_cancel(tmp_path): program = r''' import json,time,sys from pathlib import Path import rclpy from PyQt5.QtCore import Qt from PyQt5.QtTest import QTest from PyQt5.QtWidgets import QApplication,QLabel from linkerhand_range_calibration.profiles import load_profile,load_station from linkerhand_range_calibration.runtime import CalibrationRuntime from linkerhand_range_calibration.ui.window import CalibrationWindow rclpy.init();app=QApplication([]) station=load_station();station['output_root']=str(Path(sys.argv[1])/'output') station['teaching_root']=str(Path(sys.argv[1])/'teaching') station['scan'].update(rate=1000,stable_frames=4,settle_seconds=.01) node=CalibrationRuntime(load_profile(),station,demo=True) window=CalibrationWindow(node);window.show() def until(condition,timeout=6): end=time.monotonic()+timeout while time.monotonic()