Skip to content

Commit 8e2d791

Browse files
committed
TST: Guard against PyGObject existing, but not gobject-introspection
1 parent d04b2f6 commit 8e2d791

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

lib/matplotlib/tests/test_backends_interactive.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,10 +81,18 @@ def _get_available_interactive_backends():
8181
elif env["MPLBACKEND"] == 'macosx' and os.environ.get('TF_BUILD'):
8282
reason = "macosx backend fails on Azure"
8383
elif env["MPLBACKEND"].startswith('gtk'):
84-
import gi # type: ignore
84+
try:
85+
import gi # type: ignore
86+
except ImportError:
87+
# Though we check that `gi` exists above, it is possible that its
88+
# C-level dependencies are not available, and then it still raises an
89+
# `ImportError`, so guard against that.
90+
available_gtk_versions = []
91+
else:
92+
gi_repo = gi.Repository.get_default()
93+
available_gtk_versions = gi_repo.enumerate_versions('Gtk')
8594
version = env["MPLBACKEND"][3]
86-
repo = gi.Repository.get_default()
87-
if f'{version}.0' not in repo.enumerate_versions('Gtk'):
95+
if f'{version}.0' not in available_gtk_versions:
8896
reason = "no usable GTK bindings"
8997
marks = []
9098
if reason:

0 commit comments

Comments
 (0)