blob: df96fa490a07a29ed06316459a7722a48be29c22 [file] [log] [blame]
mrbean-bremen63f42d52020-11-26 14:21:49 +01001name: Testsuite
mrbean-bremen66467622020-11-01 20:00:45 +01002
mrbean-bremen05925ab2021-05-10 20:19:16 +02003on:
4 [push, pull_request]
mrbean-bremen66467622020-11-01 20:00:45 +01005
6jobs:
7 linter:
8 runs-on: ${{ matrix.os }}
9 strategy:
10 matrix:
11 os: [ubuntu-latest]
12 python-version: [3.8]
13 steps:
14 - uses: actions/checkout@v2
15 - name: Set up Python ${{ matrix.python-version }}
16 uses: actions/setup-python@v2
17 with:
18 python-version: ${{ matrix.python-version }}
19 - name: Install linter
mrbean-bremen3b540262021-01-10 18:46:35 +010020 run: |
21 uname -a
22 python -m pip install flake8
mrbean-bremen66467622020-11-01 20:00:45 +010023 - name: Check syntax and style
24 run: flake8 . --exclude get-pip.py --max-complexity=13 --statistics
25
26 tests:
27 runs-on: ${{ matrix.os }}
28 strategy:
29 fail-fast: false
30 matrix:
31 os: [ubuntu-latest, macOS-latest, windows-2016]
Carl Montanaria8a70bb2021-05-13 22:44:45 -070032 python-version: [3.6, 3.7, 3.8, 3.9, 3.10.0-beta.1]
mrbean-bremen66467622020-11-01 20:00:45 +010033 include:
34 - python-version: pypy3
35 os: ubuntu-latest
36
37 steps:
38 - uses: actions/checkout@v2
39 - name: Set up Python ${{ matrix.python-version }}
Carl Montanaria8a70bb2021-05-13 22:44:45 -070040 uses: actions/setup-python@v2
mrbean-bremen66467622020-11-01 20:00:45 +010041 with:
42 python-version: ${{ matrix.python-version }}
mrbean-bremen0b47f542020-11-26 18:48:54 +010043
44 - name: Get pip cache dir
45 id: pip-cache
46 run: |
mrbean-bremenf1e51632020-11-30 18:26:24 +010047 python -m pip install --upgrade pip
mrbean-bremen0b47f542020-11-26 18:48:54 +010048 echo "::set-output name=dir::$(pip cache dir)"
49
50 - name: Cache dependencies
51 id: cache-dep
52 uses: actions/cache@v2
53 with:
54 path: ${{ steps.pip-cache.outputs.dir }}
55 key: ${{ matrix.os }}-${{ matrix.python-version }}-pip-${{ hashFiles('**/requirements.txt') }}-${{ hashFiles('**/extra_requirements.txt') }}
56 restore-keys: |
57 ${{ matrix.os }}-${{ matrix.python-version }}-pip-
58
mrbean-bremen66467622020-11-01 20:00:45 +010059 - name: Install dependencies
60 run: |
mrbean-bremenf1e51632020-11-30 18:26:24 +010061 pip install wheel
mrbean-bremen66467622020-11-01 20:00:45 +010062 pip install -r requirements.txt
mrbean-bremen66467622020-11-01 20:00:45 +010063 pip install .
mrbean-bremen66467622020-11-01 20:00:45 +010064 - name: Run unit tests without extra packages as non-root user
65 run: |
66 export TEST_REAL_FS=1
67 python -m pyfakefs.tests.all_tests_without_extra_packages
68 shell: bash
mrbean-bremen3b540262021-01-10 18:46:35 +010069 - name: Run setup.py test (uses pytest)
70 run: |
71 python setup.py test
72 shell: bash
mrbean-bremen66467622020-11-01 20:00:45 +010073 - name: Run unit tests without extra packages as root
74 run: |
75 if [[ '${{ matrix.os }}' != 'windows-2016' ]]; then
76 # provide the same path as non-root to get the correct virtualenv
77 sudo env "PATH=$PATH" python -m pyfakefs.tests.all_tests_without_extra_packages
78 fi
79 shell: bash
mrbean-bremen3b540262021-01-10 18:46:35 +010080 - name: Install extra dependencies
81 run: |
Carl Montanaria8a70bb2021-05-13 22:44:45 -070082 # some extra dependencies are not avaialble in 3.10 Beta yet
83 # so we exclude it from all tests on extra dependencies
84 if [[ '${{ matrix.python-version }}' != '3.10.0-beta.1' ]]; then
85 pip install -r extra_requirements.txt
86 fi
87 shell: bash
mrbean-bremen3b540262021-01-10 18:46:35 +010088 - name: Run unit tests with extra packages as non-root user
89 run: |
Carl Montanaria8a70bb2021-05-13 22:44:45 -070090 if [[ '${{ matrix.python-version }}' != '3.10.0-beta.1' ]]; then
91 python -m pyfakefs.tests.all_tests
92 fi
93 shell: bash
mrbean-bremen66467622020-11-01 20:00:45 +010094 - name: Run pytest tests
95 run: |
Carl Montanaria8a70bb2021-05-13 22:44:45 -070096 if [[ '${{ matrix.python-version }}' != '3.10.0-beta.1' ]]; then
97 export PY_VERSION=${{ matrix.python-version }}
98 $GITHUB_WORKSPACE/.github/workflows/run_pytest.sh
99 fi
mrbean-bremen66467622020-11-01 20:00:45 +0100100 shell: bash
mrbean-bremen541cd092020-11-20 17:43:37 +0100101 - name: Run performance tests
102 run: |
Carl Montanaria8a70bb2021-05-13 22:44:45 -0700103 if [[ '${{ matrix.os }}' != 'macOS-latest' && '${{ matrix.python-version }}' != '3.10.0-beta.1' ]]; then
mrbean-bremen8d110092020-12-17 22:07:09 +0100104 export TEST_PERFORMANCE=1
105 python -m pyfakefs.tests.performance_test
106 fi
mrbean-bremen541cd092020-11-20 17:43:37 +0100107 shell: bash