diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ef0bb66efff5..d46c9ba5b504 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -58,6 +58,7 @@ jobs: python-version: '3.11' - os: macos-latest python-version: 3.8 + extra-requirements: '-r requirements/testing/extra.txt' steps: - uses: actions/checkout@v3 @@ -118,6 +119,8 @@ jobs: brew install ccache brew tap homebrew/cask-fonts brew install font-noto-sans-cjk + brew install --cask inkscape + brew install gtk+3 gobject-introspection ;; esac @@ -185,44 +188,46 @@ jobs: # (sometimes, the install appears to be successful but shared # libraries cannot be loaded at runtime, so an actual import is a # better check). - # PyGObject, pycairo, and cariocffi do not install on OSX 10.12. - python -m pip install --upgrade pycairo 'cairocffi>=0.8' PyGObject && + python -m pip install --upgrade pycairo 'cairocffi>=0.8' && + echo 'Cairo is available' || + echo 'Cairo is not available' + + # PyGObject does not install on OSX 11.6. + python -m pip install --upgrade PyGObject && python -c 'import gi; gi.require_version("Gtk", "3.0"); from gi.repository import Gtk' && echo 'PyGObject is available' || echo 'PyGObject is not available' - # There are no functioning wheels available for OSX 10.12 (as of - # Sept 2020) for either pyqt5 (there are only wheels for 10.13+) or - # pyside2 (the latest version (5.13.2) with 10.12 wheels has a - # fatal to us bug, it was fixed in 5.14.0 which has 10.13 wheels) python -mpip install --upgrade pyqt5${{ matrix.pyqt5-ver }} && python -c 'import PyQt5.QtCore' && echo 'PyQt5 is available' || echo 'PyQt5 is not available' + python -mpip install --upgrade pyqt6${{ matrix.pyqt6-ver }} && + python -c 'import PyQt6.QtCore' && + echo 'PyQt6 is available' || + echo 'PyQt6 is not available' + python -mpip install --upgrade pyside2${{ matrix.pyside2-ver }} && + python -c 'import PySide2.QtCore' && + echo 'PySide2 is available' || + echo 'PySide2 is not available' + python -mpip install --upgrade pyside6${{ matrix.pyside6-ver }} && + python -c 'import PySide6.QtCore' && + echo 'PySide6 is available' || + echo 'PySide6 is not available' + + # No linux wheels in pypi, no working wheels for OSX if [[ "${{ runner.os }}" != 'macOS' ]]; then - python -mpip install --upgrade pyside2${{ matrix.pyside2-ver }} && - python -c 'import PySide2.QtCore' && - echo 'PySide2 is available' || - echo 'PySide2 is not available' + python -mpip install --upgrade \ + -f "https://extras.wxpython.org/wxPython4/extras/linux/gtk3/${{ matrix.os }}" \ + wxPython && + python -c 'import wx' && + echo 'wxPython is available' || + echo 'wxPython is not available' fi - if [[ "${{ matrix.os }}" = ubuntu-20.04 ]]; then - python -mpip install --upgrade pyqt6${{ matrix.pyqt6-ver }} && - python -c 'import PyQt6.QtCore' && - echo 'PyQt6 is available' || - echo 'PyQt6 is not available' - python -mpip install --upgrade pyside6${{ matrix.pyside6-ver }} && - python -c 'import PySide6.QtCore' && - echo 'PySide6 is available' || - echo 'PySide6 is not available' + if [[ "${{ runner.os }}" == 'macOS' ]]; then + echo 'wxPython is not available' fi - python -mpip install --upgrade \ - -f "https://extras.wxpython.org/wxPython4/extras/linux/gtk3/${{ matrix.os }}" \ - wxPython && - python -c 'import wx' && - echo 'wxPython is available' || - echo 'wxPython is not available' - - name: Install the nightly dependencies # Only install the nightly dependencies during the scheduled event if: ${{ github.event_name == 'schedule' && matrix.name-suffix != '(Minimum Versions)' }} diff --git a/lib/matplotlib/testing/_markers.py b/lib/matplotlib/testing/_markers.py index fa7885151e33..0fbce8411154 100644 --- a/lib/matplotlib/testing/_markers.py +++ b/lib/matplotlib/testing/_markers.py @@ -46,4 +46,4 @@ def _checkdep_usetex(): reason='xelatex + pgf is required') needs_usetex = pytest.mark.skipif( not _checkdep_usetex(), - reason="This test needs a TeX installation") + reason="This test needs a TeX installation with dvipng and ghostscript") diff --git a/lib/matplotlib/tests/test_backend_svg.py b/lib/matplotlib/tests/test_backend_svg.py index 78383904c4fd..4ac540ac7531 100644 --- a/lib/matplotlib/tests/test_backend_svg.py +++ b/lib/matplotlib/tests/test_backend_svg.py @@ -1,6 +1,7 @@ import datetime from io import BytesIO from pathlib import Path +import sys import xml.etree.ElementTree import xml.parsers.expat @@ -74,6 +75,7 @@ def test_bold_font_output(): ax.set_title('bold-title', fontweight='bold') +@pytest.mark.xfail(sys.platform == "darwin", reason='Fails on OSX') @image_comparison(['bold_font_output_with_none_fonttype.svg']) def test_bold_font_output_with_none_fonttype(): plt.rcParams['svg.fonttype'] = 'none'