name: Python testing

on:
  workflow_dispatch:
  push:
  pull_request:
  schedule:
    - cron: '0 4 * * 6'

permissions:
  contents: read

jobs:
  isort:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v4
      - name: Check import sorting
        uses: isort/isort-action@v1
  black:
    needs: isort
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v4
      - name: Check code formating
        uses: psf/black@stable
  python_testing:
    needs: [isort, black]
    runs-on: ubuntu-latest
    strategy:
      matrix:
        python-version: ["3.11", "3.12"]
    steps:
      - name: Checkout Repo
        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: |
          python -m pip install --upgrade pip
          pip install pylint pytest pytest-sugar
          pip install .
      - name: Lint with pylint
        run: |
          pylint .
      - name: Test with pytest
        run: |
          pytest
