Skip to content

Allow running test suite headless

Eric Prestat requested to merge ericpre/atomap:test_suite_headless into master

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.

Merge request reports