fix(ci): force PySide6 stubs in updater test
- replace any preloaded PySide6 modules with local stubs before importing updater_gui - prevent headless linux failures from libGL dependency during unit tests
This commit is contained in:
@@ -7,10 +7,8 @@ import types
|
|||||||
|
|
||||||
|
|
||||||
def _install_pyside6_stubs():
|
def _install_pyside6_stubs():
|
||||||
if "PySide6" in sys.modules:
|
|
||||||
return
|
|
||||||
|
|
||||||
pyside6_module = types.ModuleType("PySide6")
|
pyside6_module = types.ModuleType("PySide6")
|
||||||
|
pyside6_module.__path__ = [] # treat as package
|
||||||
qtcore_module = types.ModuleType("PySide6.QtCore")
|
qtcore_module = types.ModuleType("PySide6.QtCore")
|
||||||
qtgui_module = types.ModuleType("PySide6.QtGui")
|
qtgui_module = types.ModuleType("PySide6.QtGui")
|
||||||
qtwidgets_module = types.ModuleType("PySide6.QtWidgets")
|
qtwidgets_module = types.ModuleType("PySide6.QtWidgets")
|
||||||
@@ -63,6 +61,11 @@ def _install_pyside6_stubs():
|
|||||||
qtwidgets_module.QPushButton = _Widget
|
qtwidgets_module.QPushButton = _Widget
|
||||||
qtwidgets_module.QHBoxLayout = _Widget
|
qtwidgets_module.QHBoxLayout = _Widget
|
||||||
|
|
||||||
|
# Force stubs even if real PySide6 was imported earlier in the process.
|
||||||
|
for mod_name in list(sys.modules.keys()):
|
||||||
|
if mod_name == "PySide6" or mod_name.startswith("PySide6."):
|
||||||
|
del sys.modules[mod_name]
|
||||||
|
|
||||||
sys.modules["PySide6"] = pyside6_module
|
sys.modules["PySide6"] = pyside6_module
|
||||||
sys.modules["PySide6.QtCore"] = qtcore_module
|
sys.modules["PySide6.QtCore"] = qtcore_module
|
||||||
sys.modules["PySide6.QtGui"] = qtgui_module
|
sys.modules["PySide6.QtGui"] = qtgui_module
|
||||||
|
|||||||
Reference in New Issue
Block a user