def run_gui_tests(tstcls, gui_test_bag): assert tstcls.app is None, "Should only encounter every class once. Check Sorting" tst_queue = queue.Queue() app = tstcls.app = QApplication([]) app.setQuitOnLastWindowClosed(False) app.thread_router = ThreadRouter(app) tstcls.shell = launchShell(None, [], []) platform_str = platform.platform().lower() if "ubuntu" in platform_str or "fedora" in platform_str: QApplication.setAttribute(Qt.AA_X11InitThreads, True) if ilastik.config.cfg.getboolean("ilastik", "debug"): QApplication.setAttribute(Qt.AA_DontUseNativeMenuBar, True) # Note on the class test execution lifecycle # pytest infers that finalizer teardown_class should be called when # nextitem is None for item, nextitem in pairwise(gui_test_bag, tail=None): tst_queue.put((item, nextitem)) # Spawn a suite runner as a interval task suite = GuiTestSuite(tst_queue, tstcls.shell) timer = QTimer() # This timer will fire only after application is started running timer.timeout.connect(suite.poll) timer.start(100) # Every 100 ms app.exec_() timer.stop() tst_queue.join()
def run_gui_tests(tstcls, gui_test_bag): assert tstcls.app is None, "Should only encounter every class once. Check Sorting" tst_queue = queue.Queue() app = tstcls.app = QApplication([]) app.setQuitOnLastWindowClosed(False) ThreadRouter.app_is_shutting_down = False app.thread_router = ThreadRouter(app) tstcls.shell = launchShell(None, [], []) platform_str = platform.platform().lower() if 'ubuntu' in platform_str or 'fedora' in platform_str: QApplication.setAttribute(Qt.AA_X11InitThreads, True) if ilastik.config.cfg.getboolean("ilastik", "debug"): QApplication.setAttribute(Qt.AA_DontUseNativeMenuBar, True) # Note on the class test execution lifecycle # pytest infers that finalizer teardown_class should be called when # nextitem is None for item, nextitem in pairwise(gui_test_bag, tail=None): tst_queue.put((item, nextitem)) # Spawn a suite runner as a interval task suite = GuiTestSuite(tst_queue, tstcls.shell) timer = QTimer() # This timer will fire only after application is started running timer.timeout.connect(suite.poll) timer.start(100) # Every 100 ms app.exec_() timer.stop() tst_queue.join()