mrbean-bremen | 63f42d5 | 2020-11-26 14:21:49 +0100 | [diff] [blame] | 1 | name: Testsuite |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 2 | |
mrbean-bremen | 05925ab | 2021-05-10 20:19:16 +0200 | [diff] [blame] | 3 | on: |
| 4 | [push, pull_request] |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 5 | |
| 6 | jobs: |
| 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-bremen | 3b54026 | 2021-01-10 18:46:35 +0100 | [diff] [blame] | 20 | run: | |
| 21 | uname -a |
| 22 | python -m pip install flake8 |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 23 | - 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 Montanari | a8a70bb | 2021-05-13 22:44:45 -0700 | [diff] [blame^] | 32 | python-version: [3.6, 3.7, 3.8, 3.9, 3.10.0-beta.1] |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 33 | 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 Montanari | a8a70bb | 2021-05-13 22:44:45 -0700 | [diff] [blame^] | 40 | uses: actions/setup-python@v2 |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 41 | with: |
| 42 | python-version: ${{ matrix.python-version }} |
mrbean-bremen | 0b47f54 | 2020-11-26 18:48:54 +0100 | [diff] [blame] | 43 | |
| 44 | - name: Get pip cache dir |
| 45 | id: pip-cache |
| 46 | run: | |
mrbean-bremen | f1e5163 | 2020-11-30 18:26:24 +0100 | [diff] [blame] | 47 | python -m pip install --upgrade pip |
mrbean-bremen | 0b47f54 | 2020-11-26 18:48:54 +0100 | [diff] [blame] | 48 | 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-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 59 | - name: Install dependencies |
| 60 | run: | |
mrbean-bremen | f1e5163 | 2020-11-30 18:26:24 +0100 | [diff] [blame] | 61 | pip install wheel |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 62 | pip install -r requirements.txt |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 63 | pip install . |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 64 | - 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-bremen | 3b54026 | 2021-01-10 18:46:35 +0100 | [diff] [blame] | 69 | - name: Run setup.py test (uses pytest) |
| 70 | run: | |
| 71 | python setup.py test |
| 72 | shell: bash |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 73 | - 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-bremen | 3b54026 | 2021-01-10 18:46:35 +0100 | [diff] [blame] | 80 | - name: Install extra dependencies |
| 81 | run: | |
Carl Montanari | a8a70bb | 2021-05-13 22:44:45 -0700 | [diff] [blame^] | 82 | # 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-bremen | 3b54026 | 2021-01-10 18:46:35 +0100 | [diff] [blame] | 88 | - name: Run unit tests with extra packages as non-root user |
| 89 | run: | |
Carl Montanari | a8a70bb | 2021-05-13 22:44:45 -0700 | [diff] [blame^] | 90 | if [[ '${{ matrix.python-version }}' != '3.10.0-beta.1' ]]; then |
| 91 | python -m pyfakefs.tests.all_tests |
| 92 | fi |
| 93 | shell: bash |
mrbean-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 94 | - name: Run pytest tests |
| 95 | run: | |
Carl Montanari | a8a70bb | 2021-05-13 22:44:45 -0700 | [diff] [blame^] | 96 | 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-bremen | 6646762 | 2020-11-01 20:00:45 +0100 | [diff] [blame] | 100 | shell: bash |
mrbean-bremen | 541cd09 | 2020-11-20 17:43:37 +0100 | [diff] [blame] | 101 | - name: Run performance tests |
| 102 | run: | |
Carl Montanari | a8a70bb | 2021-05-13 22:44:45 -0700 | [diff] [blame^] | 103 | if [[ '${{ matrix.os }}' != 'macOS-latest' && '${{ matrix.python-version }}' != '3.10.0-beta.1' ]]; then |
mrbean-bremen | 8d11009 | 2020-12-17 22:07:09 +0100 | [diff] [blame] | 104 | export TEST_PERFORMANCE=1 |
| 105 | python -m pyfakefs.tests.performance_test |
| 106 | fi |
mrbean-bremen | 541cd09 | 2020-11-20 17:43:37 +0100 | [diff] [blame] | 107 | shell: bash |