[pre-commit.ci] pre-commit autoupdate #924
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Testsuite | |
on: | |
[push, pull_request] | |
defaults: | |
run: | |
shell: bash | |
jobs: | |
pytype: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
- name: install pytype | |
run: pip install setuptools pytype pytest scandir pathlib2 pandas xlrd django pyarrow | |
- name: Run pytype | |
run: | | |
pytype pyfakefs --keep-going --exclude pyfakefs/tests/* --exclude pyfakefs/pytest_tests/* | |
tests: | |
runs-on: ${{ matrix.os }} | |
env: | |
PYTHONWARNDEFAULTENCODING: true | |
PIP_DISABLE_PIP_VERSION_CHECK: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
python-version: [3.7, 3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] | |
include: | |
- python-version: "pypy-3.7" | |
os: ubuntu-latest | |
- python-version: "pypy-3.9" | |
os: ubuntu-latest | |
- python-version: "pypy-3.10" | |
os: ubuntu-latest | |
exclude: | |
- python-version: 3.7 | |
os: macOS-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
allow-prereleases: true | |
- name: Get pip cache dir | |
id: pip-cache | |
shell: bash | |
run: | | |
python -m pip install --upgrade pip | |
echo "dir=$(pip cache dir)" >> $GITHUB_OUTPUT | |
- name: Cache dependencies | |
id: cache-dep | |
uses: actions/cache@v4 | |
with: | |
path: ${{ steps.pip-cache.outputs.dir }} | |
key: ${{ matrix.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/extra_requirements.txt') }}-${{ hashFiles('**/legacy_requirements.txt') }} | |
restore-keys: | | |
${{ matrix.os }}-${{ matrix.python-version }}-pip- | |
- name: Install dependencies | |
run: | | |
pip install setuptools wheel | |
pip install -r requirements.txt | |
- name: Run unit tests without extra packages as non-root user | |
run: | | |
export TEST_REAL_FS=1 | |
python -bb -m pyfakefs.tests.all_tests_without_extra_packages | |
shell: bash | |
- name: Run unit tests without extra packages as root | |
run: | | |
if [[ '${{ matrix.os }}' != 'windows-latest' ]]; then | |
# provide the same path as non-root to get the correct virtualenv | |
sudo env "PATH=$PATH" python -m pyfakefs.tests.all_tests_without_extra_packages | |
fi | |
shell: bash | |
- name: Install extra dependencies | |
if: ${{ matrix.python-version != 'pypy-3.10' }} | |
run: | | |
pip install -r extra_requirements.txt | |
pip install -r legacy_requirements.txt | |
pip install zstandard cffi # needed to test #910 | |
shell: bash | |
- name: Run unit tests with extra packages as non-root user | |
if: ${{ matrix.python-version != 'pypy-3.10' }} | |
run: | | |
export PYTHON_ZSTANDARD_IMPORT_POLICY=cffi # needed to test #910 | |
python -m pyfakefs.tests.all_tests | |
shell: bash | |
- name: Run performance tests | |
run: | | |
if [[ '${{ matrix.os }}' != 'macOS-latest' ]]; then | |
export TEST_PERFORMANCE=1 | |
python -m pyfakefs.tests.performance_test | |
fi | |
shell: bash | |
pytest-test: | |
runs-on: ${{ matrix.os }} | |
env: | |
PIP_DISABLE_PIP_VERSION_CHECK: 1 | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macOS-latest, windows-latest] | |
python-version: [3.8, 3.9, "3.10", "3.11", "3.12", "3.13"] | |
pytest-version: [6.2.5, 7.0.1, 7.4.4, 8.0.2, 8.3.4] | |
exclude: | |
# some tests still fail for macOS/Python 3.13 | |
- python-version: "3.13" | |
os: macOS-latest | |
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: | | |
python -m pip install --upgrade pip | |
python -m pip install -r requirements.txt | |
python -m pip install -U pytest==${{ matrix.pytest-version }} | |
python -m pip install pandas parquet pyarrow | |
python -m pip install -e . | |
shell: bash | |
- name: Run pytest tests | |
run: | | |
echo "$(python -m pytest pyfakefs/pytest_tests/pytest_plugin_failing_helper.py)" > ./testresult.txt | |
pytest pyfakefs/pytest_tests | |
cd pyfakefs/pytest_tests/ns_package | |
pytest --log-cli-level=INFO test | |
shell: bash | |
dependency-check: | |
runs-on: ${{ matrix.os }} | |
strategy: | |
matrix: | |
os: [ubuntu-latest, windows-latest] | |
python-version: ["3.10"] | |
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 | |
pip install -r extra_requirements.txt | |
pip install -r legacy_requirements.txt | |
pip install pytest-find-dependencies | |
- name: Check dependencies | |
run: python -m pytest --find-dependencies pyfakefs/tests | |
shell: bash |