Allow running test suite headless
Use environment variable to define which matplotlib backend to use on gitlab-ci instead of hardcoding it in the conftest.py.
To avoid the following error in https://github.com/hyperspy/hyperspy/pull/2824:
==================================== ERRORS ====================================
________________________ ERROR collecting test session _________________________
/usr/share/miniconda3/lib/python3.9/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1030: in _gcd_import
???
<frozen importlib._bootstrap>:1007: in _find_and_load
???
<frozen importlib._bootstrap>:986: in _find_and_load_unlocked
???
<frozen importlib._bootstrap>:680: in _load_unlocked
???
/usr/share/miniconda3/lib/python3.9/site-packages/_pytest/assertion/rewrite.py:170: in exec_module
exec(co, module.__dict__)
/usr/share/miniconda3/lib/python3.9/site-packages/atomap/conftest.py:8: in <module>
import matplotlib.pyplot as plt
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:2500: in <module>
switch_backend(rcParams["backend"])
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:277: in switch_backend
class backend_mod(matplotlib.backend_bases._Backend):
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:278: in backend_mod
locals().update(vars(importlib.import_module(backend_name)))
/usr/share/miniconda3/lib/python3.9/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/backend_qt5agg.py:11: in <module>
from .backend_qt5 import (
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/backend_qt5.py:13: in <module>
import matplotlib.backends.qt_editor.figureoptions as figureoptions
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/qt_editor/figureoptions.py:11: in <module>
from matplotlib.backends.qt_compat import QtGui
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/qt_compat.py:179: in <module>
raise ImportError("Failed to import any qt binding")
E ImportError: Failed to import any qt binding
________________________ ERROR collecting test session _________________________
/usr/share/miniconda3/lib/python3.9/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
<frozen importlib._bootstrap>:1030: in _gcd_import
???
<frozen importlib._bootstrap>:1007: in _find_and_load
???
<frozen importlib._bootstrap>:986: in _find_and_load_unlocked
???
<frozen importlib._bootstrap>:680: in _load_unlocked
???
/usr/share/miniconda3/lib/python3.9/site-packages/_pytest/assertion/rewrite.py:170: in exec_module
exec(co, module.__dict__)
/usr/share/miniconda3/lib/python3.9/site-packages/atomap/conftest.py:8: in <module>
import matplotlib.pyplot as plt
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:2500: in <module>
switch_backend(rcParams["backend"])
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:277: in switch_backend
class backend_mod(matplotlib.backend_bases._Backend):
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/pyplot.py:278: in backend_mod
locals().update(vars(importlib.import_module(backend_name)))
/usr/share/miniconda3/lib/python3.9/importlib/__init__.py:127: in import_module
return _bootstrap._gcd_import(name[level:], package, level)
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/backend_qt5agg.py:11: in <module>
from .backend_qt5 import (
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/backend_qt5.py:13: in <module>
import matplotlib.backends.qt_editor.figureoptions as figureoptions
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/qt_editor/figureoptions.py:11: in <module>
from matplotlib.backends.qt_compat import QtGui
/usr/share/miniconda3/lib/python3.9/site-packages/matplotlib/backends/qt_compat.py:179: in <module>
raise ImportError("Failed to import any qt binding")
E ImportError: Failed to import any qt binding
=========================== short test summary info ============================
ERROR - ImportError: Failed to import any qt binding
ERROR - ImportError: Failed to import any qt binding
============================== 2 errors in 1.12s ===============================
Error: Process completed with exit code 1.