requests.git | .github/workflows/ | run-tests.yml


name: Tests

on: [push, pull_request]

permissions:
  contents: read

jobs:
  build:
    runs-on: ${{ matrix.os }}
    timeout-minutes: 10
    strategy:
      fail-fast: false
      matrix:
        python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14-dev", "pypy-3.10", "pypy-3.11"]
        os: [ubuntu-22.04, macOS-latest, windows-latest]
        # Pypy-3.11 can't install openssl-sys with rust
        # which prevents us from testing in GHA.
        exclude:
        - { python-version: "pypy-3.11", os: "windows-latest" }

    steps:
    - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
    - name: Set up Python ${{ matrix.python-version }}
      uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6.0.0
      with:
        python-version: ${{ matrix.python-version }}
        cache: 'pip'
        allow-prereleases: true
    - name: Install dependencies
      run: |
        make
    - name: Run tests
      run: |
        make ci

  no_chardet:
    name: "No Character Detection"
    runs-on: ubuntu-latest
    strategy:
      fail-fast: true

    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
      - name: 'Set up Python 3.9'
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
        with:
          python-version: '3.9'
      - name: Install dependencies
        run: |
          make
          python -m pip uninstall -y "charset_normalizer" "chardet"
      - name: Run tests
        run: |
          make ci

  urllib3:
    name: 'urllib3 1.x'
    runs-on: 'ubuntu-latest'
    strategy:
      fail-fast: true

    steps:
      - uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
      - name: 'Set up Python 3.9'
        uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c
        with:
          python-version: '3.9'
      - name: Install dependencies
        run: |
          make
          python  -m pip install "urllib3<2"
      - name: Run tests
        run: |
          make ci