Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b64444c

Browse files
committed
Explicitly test for missing qt bindings
1 parent 75a77ec commit b64444c

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

lib/matplotlib/tests/test_backends_interactive.py

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,26 @@ def test_qt5backends_uses_qt5():
343343
_run_helper(_implcore, timeout=_test_timeout)
344344

345345

346+
def _impl_missing():
347+
import sys
348+
# Simulate uninstalled
349+
sys.modules["PyQt6"] = None
350+
sys.modules["PyQt5"] = None
351+
sys.modules["PySide2"] = None
352+
sys.modules["PySide6"] = None
353+
354+
import matplotlib.pyplot as plt
355+
with pytest.raises(ImportError, match="Failed to import any of the following Qt"):
356+
plt.switch_backend("qtagg")
357+
# Specifically ensure that Pyside6/Pyqt6 are not in the error message for qt5agg
358+
with pytest.raises(ImportError, match="^(?:(?!(PySide6|PyQt6)).)*$"):
359+
plt.switch_backend("qt5agg")
360+
361+
362+
def test_qt_missing():
363+
_run_helper(_impl_missing, timeout=_test_timeout)
364+
365+
346366
def _impl_test_cross_Qt_imports():
347367
import sys
348368
import importlib

0 commit comments

Comments
 (0)