import unittest import os import sys os.environ.setdefault("QT_QPA_PLATFORM", "offscreen") sys.path.insert(0, os.path.dirname(__file__)) from app import gui if gui.QT_IMPORT_ERROR is not None: raise unittest.SkipTest("PySide6 未安装") from PySide6.QtWidgets import QApplication from app.gui import MainWindow, TAB_TITLES class GuiTests(unittest.TestCase): @classmethod def setUpClass(cls): cls.app = QApplication.instance() or QApplication([]) def test_main_window_has_five_tabs_in_workflow_order(self): window = MainWindow() self.addCleanup(window.close) self.assertEqual(5, window.tabs.count()) self.assertEqual( TAB_TITLES, [window.tabs.tabText(index) for index in range(window.tabs.count())], ) self.assertEqual("就绪", window.statusBar().currentMessage()) def test_tab_switch_updates_status_bar(self): window = MainWindow() self.addCleanup(window.close) window.tabs.setCurrentIndex(2) self.assertEqual("③ 更新shopee", window.tabs.tabText(window.tabs.currentIndex())) self.assertEqual("当前:③ 更新shopee", window.statusBar().currentMessage()) if __name__ == "__main__": unittest.main()