name: Tests on: push: branches: [main] pull_request: branches: [main] jobs: test: runs-on: ubuntu-latest strategy: matrix: python-version: ["3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install dependencies run: pip install -r requirements.txt # The gate's keyboard and layout tests drive real Tk: widget heights and # the focus ring come from the font engine, and no mock can answer what # they ask. Without a display they do not skip -- they fail, which is how # this job stayed red while the tests themselves were fine. - name: Install a virtual X display run: sudo apt-get update && sudo apt-get install -y xvfb - name: Run tests with coverage run: xvfb-run -a -s "-screen 0 1600x1200x24" python -m pytest -v