##// END OF EJS Templates
pin pytest differently
Matthias Bussonnier -
Show More
@@ -1,98 +1,98
1 name: Run tests
1 name: Run tests
2
2
3 on:
3 on:
4 push:
4 push:
5 branches:
5 branches:
6 - main
6 - main
7 - '*.x'
7 - '*.x'
8 pull_request:
8 pull_request:
9 # Run weekly on Monday at 1:23 UTC
9 # Run weekly on Monday at 1:23 UTC
10 schedule:
10 schedule:
11 - cron: '23 1 * * 1'
11 - cron: '23 1 * * 1'
12 workflow_dispatch:
12 workflow_dispatch:
13
13
14
14
15 jobs:
15 jobs:
16 test:
16 test:
17 runs-on: ${{ matrix.os }}
17 runs-on: ${{ matrix.os }}
18 strategy:
18 strategy:
19 fail-fast: false
19 fail-fast: false
20 matrix:
20 matrix:
21 os: [ubuntu-latest, windows-latest]
21 os: [ubuntu-latest, windows-latest]
22 python-version: ["3.10", "3.11", "3.12"]
22 python-version: ["3.10", "3.11", "3.12"]
23 deps: [test_extra]
23 deps: [test_extra]
24 # Test all on ubuntu, test ends on macos
24 # Test all on ubuntu, test ends on macos
25 include:
25 include:
26 - os: macos-latest
26 - os: macos-latest
27 python-version: "3.10"
27 python-version: "3.10"
28 deps: test_extra
28 deps: test_extra
29 - os: macos-latest
29 - os: macos-latest
30 python-version: "3.11"
30 python-version: "3.11"
31 deps: test_extra
31 deps: test_extra
32 # Tests minimal dependencies set
32 # Tests minimal dependencies set
33 - os: ubuntu-latest
33 - os: ubuntu-latest
34 python-version: "3.11"
34 python-version: "3.11"
35 deps: test
35 deps: test
36 # Tests latest development Python version
36 # Tests latest development Python version
37 - os: ubuntu-latest
37 - os: ubuntu-latest
38 python-version: "3.13-dev"
38 python-version: "3.13-dev"
39 deps: test
39 deps: test
40 # Installing optional dependencies stuff takes ages on PyPy
40 # Installing optional dependencies stuff takes ages on PyPy
41 - os: ubuntu-latest
41 - os: ubuntu-latest
42 python-version: "pypy-3.10"
42 python-version: "pypy-3.10"
43 deps: test
43 deps: test
44 - os: windows-latest
44 - os: windows-latest
45 python-version: "pypy-3.10"
45 python-version: "pypy-3.10"
46 deps: test
46 deps: test
47 - os: macos-latest
47 - os: macos-latest
48 python-version: "pypy-3.10"
48 python-version: "pypy-3.10"
49 deps: test
49 deps: test
50
50
51 steps:
51 steps:
52 - uses: actions/checkout@v3
52 - uses: actions/checkout@v3
53 - name: Set up Python ${{ matrix.python-version }}
53 - name: Set up Python ${{ matrix.python-version }}
54 uses: actions/setup-python@v4
54 uses: actions/setup-python@v4
55 with:
55 with:
56 python-version: ${{ matrix.python-version }}
56 python-version: ${{ matrix.python-version }}
57 cache: pip
57 cache: pip
58 cache-dependency-path: |
58 cache-dependency-path: |
59 setup.cfg
59 setup.cfg
60 - name: Install latex
60 - name: Install latex
61 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
61 if: runner.os == 'Linux' && matrix.deps == 'test_extra'
62 run: echo "disable latex for now, issues in mirros" #sudo apt-get -yq -o Acquire::Retries=3 --no-install-suggests --no-install-recommends install texlive dvipng
62 run: echo "disable latex for now, issues in mirros" #sudo apt-get -yq -o Acquire::Retries=3 --no-install-suggests --no-install-recommends install texlive dvipng
63 - name: Install and update Python dependencies (binary only)
63 - name: Install and update Python dependencies (binary only)
64 if: ${{ ! contains( matrix.python-version, 'dev' ) }}
64 if: ${{ ! contains( matrix.python-version, 'dev' ) }}
65 run: |
65 run: |
66 python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
66 python -m pip install --only-binary ':all:' --upgrade pip setuptools wheel build
67 python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}]
67 python -m pip install --only-binary ':all:' --no-binary curio --upgrade -e .[${{ matrix.deps }}]
68 python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest-json-report
68 python -m pip install --only-binary ':all:' --upgrade check-manifest pytest-cov pytest-json-report 'pytest<8'
69 - name: Install and update Python dependencies (dev?)
69 - name: Install and update Python dependencies (dev?)
70 if: ${{ contains( matrix.python-version, 'dev' ) }}
70 if: ${{ contains( matrix.python-version, 'dev' ) }}
71 run: |
71 run: |
72 python -m pip install --pre --upgrade pip setuptools wheel build
72 python -m pip install --pre --upgrade pip setuptools wheel build
73 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --upgrade -e .[${{ matrix.deps }}]
73 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --no-binary curio --upgrade -e .[${{ matrix.deps }}]
74 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --upgrade check-manifest pytest-cov pytest-json-report
74 python -m pip install --pre --extra-index-url https://pypi.anaconda.org/scientific-python-nightly-wheels/simple --upgrade check-manifest pytest-cov pytest-json-report
75 - name: Try building with Python build
75 - name: Try building with Python build
76 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
76 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
77 run: |
77 run: |
78 python -m build
78 python -m build
79 shasum -a 256 dist/*
79 shasum -a 256 dist/*
80 - name: Check manifest
80 - name: Check manifest
81 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
81 if: runner.os != 'Windows' # setup.py does not support sdist on Windows
82 run: check-manifest
82 run: check-manifest
83 - name: pytest
83 - name: pytest
84 env:
84 env:
85 COLUMNS: 120
85 COLUMNS: 120
86 run: |
86 run: |
87 pytest --color=yes -raXxs ${{ startsWith(matrix.python-version, 'pypy') && ' ' || '--cov --cov-report=xml' }} --json-report --json-report-file=./report-${{ matrix.python-version }}-${{runner.os}}.json --maxfail=15
87 pytest --color=yes -raXxs ${{ startsWith(matrix.python-version, 'pypy') && ' ' || '--cov --cov-report=xml' }} --json-report --json-report-file=./report-${{ matrix.python-version }}-${{runner.os}}.json --maxfail=15
88 - uses: actions/upload-artifact@v3
88 - uses: actions/upload-artifact@v3
89 with:
89 with:
90 name: upload pytest timing reports as json
90 name: upload pytest timing reports as json
91 path: |
91 path: |
92 ./report-*.json
92 ./report-*.json
93
93
94 - name: Upload coverage to Codecov
94 - name: Upload coverage to Codecov
95 uses: codecov/codecov-action@v3
95 uses: codecov/codecov-action@v3
96 with:
96 with:
97 name: Test
97 name: Test
98 files: /home/runner/work/ipython/ipython/coverage.xml
98 files: /home/runner/work/ipython/ipython/coverage.xml
@@ -1,116 +1,115
1 [metadata]
1 [metadata]
2 name = ipython
2 name = ipython
3 version = attr: IPython.core.release.__version__
3 version = attr: IPython.core.release.__version__
4 url = https://ipython.org
4 url = https://ipython.org
5 description = IPython: Productive Interactive Computing
5 description = IPython: Productive Interactive Computing
6 long_description_content_type = text/x-rst
6 long_description_content_type = text/x-rst
7 long_description = file: long_description.rst
7 long_description = file: long_description.rst
8 license_file = LICENSE
8 license_file = LICENSE
9 project_urls =
9 project_urls =
10 Documentation = https://ipython.readthedocs.io/
10 Documentation = https://ipython.readthedocs.io/
11 Funding = https://numfocus.org/
11 Funding = https://numfocus.org/
12 Source = https://github.com/ipython/ipython
12 Source = https://github.com/ipython/ipython
13 Tracker = https://github.com/ipython/ipython/issues
13 Tracker = https://github.com/ipython/ipython/issues
14 keywords = Interactive, Interpreter, Shell, Embedding
14 keywords = Interactive, Interpreter, Shell, Embedding
15 platforms = Linux, Mac OSX, Windows
15 platforms = Linux, Mac OSX, Windows
16 classifiers =
16 classifiers =
17 Framework :: IPython
17 Framework :: IPython
18 Framework :: Jupyter
18 Framework :: Jupyter
19 Intended Audience :: Developers
19 Intended Audience :: Developers
20 Intended Audience :: Science/Research
20 Intended Audience :: Science/Research
21 License :: OSI Approved :: BSD License
21 License :: OSI Approved :: BSD License
22 Programming Language :: Python
22 Programming Language :: Python
23 Programming Language :: Python :: 3
23 Programming Language :: Python :: 3
24 Programming Language :: Python :: 3 :: Only
24 Programming Language :: Python :: 3 :: Only
25 Topic :: System :: Shells
25 Topic :: System :: Shells
26
26
27 [options]
27 [options]
28 packages = find:
28 packages = find:
29 python_requires = >=3.10
29 python_requires = >=3.10
30 zip_safe = False
30 zip_safe = False
31 install_requires =
31 install_requires =
32 colorama; sys_platform == "win32"
32 colorama; sys_platform == "win32"
33 decorator
33 decorator
34 exceptiongroup; python_version<'3.11'
34 exceptiongroup; python_version<'3.11'
35 jedi>=0.16
35 jedi>=0.16
36 matplotlib-inline
36 matplotlib-inline
37 pexpect>4.3; sys_platform != "win32"
37 pexpect>4.3; sys_platform != "win32"
38 prompt_toolkit>=3.0.41,<3.1.0
38 prompt_toolkit>=3.0.41,<3.1.0
39 pygments>=2.4.0
39 pygments>=2.4.0
40 stack_data
40 stack_data
41 traitlets>=5
41 traitlets>=5
42 typing_extensions ; python_version<'3.10'
42 typing_extensions ; python_version<'3.10'
43
43
44 [options.extras_require]
44 [options.extras_require]
45 black =
45 black =
46 black
46 black
47 doc =
47 doc =
48 ipykernel
48 ipykernel
49 setuptools>=18.5
49 setuptools>=18.5
50 sphinx>=1.3
50 sphinx>=1.3
51 sphinx-rtd-theme
51 sphinx-rtd-theme
52 docrepr
52 docrepr
53 matplotlib
53 matplotlib
54 stack_data
54 stack_data
55 pytest<8
56 typing_extensions
55 typing_extensions
57 exceptiongroup
56 exceptiongroup
58 %(test)s
57 %(test)s
59 kernel =
58 kernel =
60 ipykernel
59 ipykernel
61 nbconvert =
60 nbconvert =
62 nbconvert
61 nbconvert
63 nbformat =
62 nbformat =
64 nbformat
63 nbformat
65 notebook =
64 notebook =
66 ipywidgets
65 ipywidgets
67 notebook
66 notebook
68 parallel =
67 parallel =
69 ipyparallel
68 ipyparallel
70 qtconsole =
69 qtconsole =
71 qtconsole
70 qtconsole
72 terminal =
71 terminal =
73 test =
72 test =
74 pytest
73 pytest<8
75 pytest-asyncio<0.22
74 pytest-asyncio<0.22
76 testpath
75 testpath
77 pickleshare
76 pickleshare
78 test_extra =
77 test_extra =
79 %(test)s
78 %(test)s
80 curio
79 curio
81 matplotlib!=3.2.0
80 matplotlib!=3.2.0
82 nbformat
81 nbformat
83 numpy>=1.23
82 numpy>=1.23
84 pandas
83 pandas
85 trio
84 trio
86 all =
85 all =
87 %(black)s
86 %(black)s
88 %(doc)s
87 %(doc)s
89 %(kernel)s
88 %(kernel)s
90 %(nbconvert)s
89 %(nbconvert)s
91 %(nbformat)s
90 %(nbformat)s
92 %(notebook)s
91 %(notebook)s
93 %(parallel)s
92 %(parallel)s
94 %(qtconsole)s
93 %(qtconsole)s
95 %(terminal)s
94 %(terminal)s
96 %(test_extra)s
95 %(test_extra)s
97 %(test)s
96 %(test)s
98
97
99 [options.packages.find]
98 [options.packages.find]
100 exclude =
99 exclude =
101 setupext
100 setupext
102
101
103 [options.package_data]
102 [options.package_data]
104 IPython = py.typed
103 IPython = py.typed
105 IPython.core = profile/README*
104 IPython.core = profile/README*
106 IPython.core.tests = *.png, *.jpg, daft_extension/*.py
105 IPython.core.tests = *.png, *.jpg, daft_extension/*.py
107 IPython.lib.tests = *.wav
106 IPython.lib.tests = *.wav
108 IPython.testing.plugin = *.txt
107 IPython.testing.plugin = *.txt
109
108
110 [velin]
109 [velin]
111 ignore_patterns =
110 ignore_patterns =
112 IPython/core/tests
111 IPython/core/tests
113 IPython/testing
112 IPython/testing
114
113
115 [tool.black]
114 [tool.black]
116 exclude = 'timing\.py'
115 exclude = 'timing\.py'
General Comments 0
You need to be logged in to leave comments. Login now