mirror of https://github.com/scrapy/scrapy.git
CI: Run coverage in as few jobs as necessary (#7834)
* CI: Run coverage in as few jobs as necessary * Complete test coverage
This commit is contained in:
parent
7436afc95f
commit
259be5d2dd
|
|
@ -14,14 +14,18 @@ jobs:
|
|||
tests:
|
||||
runs-on: macos-latest
|
||||
env:
|
||||
PYTEST_ADDOPTS: -n auto
|
||||
PYTEST_ADDOPTS: ${{ matrix.coverage && '-n auto' || '-n auto --no-cov' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
|
||||
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
||||
env:
|
||||
- TOXENV: py
|
||||
include:
|
||||
- python-version: '3.14'
|
||||
env:
|
||||
TOXENV: py
|
||||
coverage: true
|
||||
- python-version: '3.14'
|
||||
env:
|
||||
TOXENV: no-reactor
|
||||
|
|
@ -41,6 +45,7 @@ jobs:
|
|||
tox
|
||||
|
||||
- name: Upload coverage report
|
||||
if: ${{ matrix.coverage }}
|
||||
uses: codecov/codecov-action@v5
|
||||
|
||||
- name: Upload test results
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
tests:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
PYTEST_ADDOPTS: -n auto
|
||||
PYTEST_ADDOPTS: ${{ matrix.coverage && '-n auto' || '-n auto --no-cov' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
@ -34,12 +34,15 @@ jobs:
|
|||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: py
|
||||
coverage: true
|
||||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: default-reactor
|
||||
coverage: true
|
||||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: no-reactor
|
||||
coverage: true
|
||||
# pinned due to https://github.com/pypy/pypy/issues/5388
|
||||
- python-version: pypy3.11-7.3.20
|
||||
env:
|
||||
|
|
@ -49,12 +52,15 @@ jobs:
|
|||
- python-version: "3.10.19"
|
||||
env:
|
||||
TOXENV: min
|
||||
coverage: true
|
||||
- python-version: "3.10.19"
|
||||
env:
|
||||
TOXENV: min-default-reactor
|
||||
coverage: true
|
||||
- python-version: "3.10.19"
|
||||
env:
|
||||
TOXENV: min-no-reactor
|
||||
coverage: true
|
||||
# pinned due to https://github.com/pypy/pypy/issues/5388
|
||||
- python-version: pypy3.11-7.3.20
|
||||
env:
|
||||
|
|
@ -62,16 +68,20 @@ jobs:
|
|||
- python-version: "3.10.19"
|
||||
env:
|
||||
TOXENV: min-extra-deps
|
||||
coverage: true
|
||||
- python-version: "3.10.19"
|
||||
env:
|
||||
TOXENV: min-botocore
|
||||
coverage: true
|
||||
|
||||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: extra-deps
|
||||
coverage: true
|
||||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: no-reactor-extra-deps
|
||||
coverage: true
|
||||
# pinned due to https://github.com/pypy/pypy/issues/5388
|
||||
- python-version: pypy3.11-7.3.20
|
||||
env:
|
||||
|
|
@ -79,6 +89,7 @@ jobs:
|
|||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: botocore
|
||||
coverage: true
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
|
|
@ -104,6 +115,7 @@ jobs:
|
|||
tox
|
||||
|
||||
- name: Upload coverage report
|
||||
if: ${{ matrix.coverage }}
|
||||
uses: codecov/codecov-action@v5
|
||||
|
||||
- name: Upload test results
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ jobs:
|
|||
tests:
|
||||
runs-on: windows-latest
|
||||
env:
|
||||
PYTEST_ADDOPTS: -n auto
|
||||
PYTEST_ADDOPTS: ${{ matrix.coverage && '-n auto' || '-n auto --no-cov' }}
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
|
|
@ -34,6 +34,7 @@ jobs:
|
|||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: py
|
||||
coverage: true
|
||||
- python-version: "3.14"
|
||||
env:
|
||||
TOXENV: default-reactor
|
||||
|
|
@ -68,6 +69,7 @@ jobs:
|
|||
tox
|
||||
|
||||
- name: Upload coverage report
|
||||
if: ${{ matrix.coverage }}
|
||||
uses: codecov/codecov-action@v5
|
||||
|
||||
- name: Upload test results
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@ from importlib.util import find_spec
|
|||
|
||||
import pytest
|
||||
|
||||
from scrapy.utils.console import get_shell_embed_func
|
||||
from scrapy.utils.console import get_shell_embed_func, start_python_console
|
||||
|
||||
|
||||
def test_get_shell_embed_func():
|
||||
|
|
@ -59,3 +59,20 @@ def test_get_shell_embed_func_default():
|
|||
else:
|
||||
expected = "_embed_standard_shell"
|
||||
assert shell.__name__ == expected
|
||||
|
||||
|
||||
def test_start_python_console_exit(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
def embed(namespace: dict[str, object], banner: str) -> None:
|
||||
raise SystemExit
|
||||
|
||||
monkeypatch.setattr(
|
||||
"scrapy.utils.console.get_shell_embed_func", lambda shells: embed
|
||||
)
|
||||
start_python_console()
|
||||
|
||||
|
||||
def test_start_python_console_no_shell(monkeypatch: pytest.MonkeyPatch) -> None:
|
||||
monkeypatch.setattr(
|
||||
"scrapy.utils.console.get_shell_embed_func", lambda shells: None
|
||||
)
|
||||
start_python_console()
|
||||
|
|
|
|||
Loading…
Reference in New Issue