name: Python tests

on:
  workflow_dispatch:
  pull_request:
    paths:
      - '**.py'
      - 'requirements-dev.txt'
  push:
    paths:
      - '**.py'
      - 'requirements-dev.txt'

jobs:
  tests:
    runs-on: ubuntu-latest
    permissions:
      checks: write
      contents: read
      pull-requests: write
    strategy:
      matrix:
        python-version: ['3.13']

    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0
      - 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 -r requirements-dev.txt
      - name: Full test with pytest
        run: pytest --cov=custom_components/tuya_local --cov-report term:skip-covered --junit-xml=test-results.xml
      - name: Surface results
        if: always()
        uses: pmeier/pytest-results-action@main
        with:
          path: test-results.xml
          summary: true
          display-options: fEX
          fail-on-empty: true
          title: Test results
