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

Skip to content

Commit 44eb749

Browse files
anntzertacaswell
authored andcommitted
Don't fail Qt tests if bindings not installed.
1 parent 131ad82 commit 44eb749

File tree

2 files changed

+25
-10
lines changed

2 files changed

+25
-10
lines changed

lib/matplotlib/tests/test_backend_qt4.py

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
import copy
2-
from unittest.mock import Mock
2+
from unittest import mock
33

4+
import matplotlib
45
from matplotlib import pyplot as plt
56
from matplotlib._pylab_helpers import Gcf
6-
import matplotlib
77

88
import pytest
99

10-
with matplotlib.rc_context(rc={'backend': 'Qt4Agg'}):
11-
qt_compat = pytest.importorskip('matplotlib.backends.qt_compat')
10+
try:
11+
import PyQt4
12+
except (ImportError, RuntimeError): # RuntimeError if PyQt5 already imported.
13+
try:
14+
import PySide
15+
except ImportError:
16+
pytestmark = pytest.mark.skip("Failed to import a Qt4 binding.")
17+
18+
qt_compat = pytest.importorskip('matplotlib.backends.qt_compat')
19+
QtCore = qt_compat.QtCore
20+
1221
from matplotlib.backends.backend_qt4 import (
1322
MODIFIER_KEYS, SUPER, ALT, CTRL, SHIFT) # noqa
1423

15-
QtCore = qt_compat.QtCore
1624
_, ControlModifier, ControlKey = MODIFIER_KEYS[CTRL]
1725
_, AltModifier, AltKey = MODIFIER_KEYS[ALT]
1826
_, SuperModifier, SuperKey = MODIFIER_KEYS[SUPER]
@@ -86,7 +94,7 @@ def test_correct_key(qt_key, qt_mods, answer):
8694
"""
8795
qt_canvas = plt.figure().canvas
8896

89-
event = Mock()
97+
event = mock.Mock()
9098
event.isAutoRepeat.return_value = False
9199
event.key.return_value = qt_key
92100
event.modifiers.return_value = qt_mods

lib/matplotlib/tests/test_backend_qt5.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,20 @@
77

88
import pytest
99

10-
with matplotlib.rc_context(rc={'backend': 'Qt5Agg'}):
11-
qt_compat = pytest.importorskip('matplotlib.backends.qt_compat',
12-
minversion='5')
10+
try:
11+
import PyQt5
12+
except (ImportError, RuntimeError): # RuntimeError if PyQt4 already imported.
13+
try:
14+
import PySide2
15+
except ImportError:
16+
pytestmark = pytest.mark.skip("Failed to import a Qt5 binding.")
17+
18+
qt_compat = pytest.importorskip('matplotlib.backends.qt_compat')
19+
QtCore = qt_compat.QtCore
20+
1321
from matplotlib.backends.backend_qt5 import (
1422
MODIFIER_KEYS, SUPER, ALT, CTRL, SHIFT) # noqa
1523

16-
QtCore = qt_compat.QtCore
1724
_, ControlModifier, ControlKey = MODIFIER_KEYS[CTRL]
1825
_, AltModifier, AltKey = MODIFIER_KEYS[ALT]
1926
_, SuperModifier, SuperKey = MODIFIER_KEYS[SUPER]

0 commit comments

Comments
 (0)