226 lines
7.6 KiB
INI
226 lines
7.6 KiB
INI
# Tox (https://tox.readthedocs.io/) is a tool for running tests
|
|
# in multiple virtualenvs. This configuration file will run the
|
|
# test suite on all supported python versions. To use it, "pip install tox"
|
|
# and then run "tox" from this directory.
|
|
|
|
[tox]
|
|
envlist = py38-pyqt515-cov,mypy,misc,vulture,flake8,pylint,pyroma,check-manifest,eslint,yamllint
|
|
distshare = {toxworkdir}
|
|
skipsdist = true
|
|
minversion = 3.15
|
|
|
|
[testenv]
|
|
setenv =
|
|
PYTEST_QT_API=pyqt5
|
|
pyqt{,512,513,514,515,5150}: LINK_PYQT_SKIP=true
|
|
cov: PYTEST_ADDOPTS=--cov --cov-report xml --cov-report=html --cov-report=
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI XDG_* QUTE_* DOCKER QT_QUICK_BACKEND FORCE_COLOR DBUS_SESSION_BUS_ADDRESS
|
|
basepython =
|
|
py: {env:PYTHON:python3}
|
|
py3: {env:PYTHON:python3}
|
|
py37: {env:PYTHON:python3.7}
|
|
py38: {env:PYTHON:python3.8}
|
|
py39: {env:PYTHON:python3.9}
|
|
py310: {env:PYTHON:python3.10}
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
|
pyqt: -r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
pyqt512: -r{toxinidir}/misc/requirements/requirements-pyqt-5.12.txt
|
|
pyqt513: -r{toxinidir}/misc/requirements/requirements-pyqt-5.13.txt
|
|
pyqt514: -r{toxinidir}/misc/requirements/requirements-pyqt-5.14.txt
|
|
pyqt515: -r{toxinidir}/misc/requirements/requirements-pyqt-5.15.txt
|
|
pyqt5150: -r{toxinidir}/misc/requirements/requirements-pyqt-5.15.0.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -bb -m pytest {posargs:tests}
|
|
cov: {envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
[testenv:bleeding]
|
|
basepython = {env:PYTHON:python3}
|
|
setenv =
|
|
PYTEST_QT_API=pyqt5
|
|
pip_pre = true
|
|
deps = -r{toxinidir}/misc/requirements/requirements-tests-bleeding.txt
|
|
commands_pre = pip install --index-url https://www.riverbankcomputing.com/pypi/simple/ --pre --upgrade PyQt5 PyQtWebEngine
|
|
commands = {envpython} -bb -m pytest {posargs:tests}
|
|
|
|
# other envs
|
|
|
|
[testenv:misc]
|
|
ignore_errors = true
|
|
basepython = {env:PYTHON:python3}
|
|
# For global .gitignore files
|
|
passenv = HOME
|
|
deps =
|
|
commands =
|
|
{envpython} scripts/dev/misc_checks.py {posargs:all}
|
|
|
|
[testenv:vulture]
|
|
basepython = {env:PYTHON:python3}
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-vulture.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
setenv = PYTHONPATH={toxinidir}
|
|
commands =
|
|
{envpython} scripts/dev/run_vulture.py
|
|
|
|
[testenv:vulture-pyqtlink]
|
|
basepython = {env:PYTHON:python3}
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-vulture.txt
|
|
setenv = PYTHONPATH={toxinidir}
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{[testenv:vulture]commands}
|
|
|
|
[testenv:pylint]
|
|
basepython = {env:PYTHON:python3}
|
|
ignore_errors = true
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pylint.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
commands =
|
|
{envpython} -m pylint scripts qutebrowser --output-format=colorized --reports=no {posargs}
|
|
{envpython} scripts/dev/run_pylint_on_tests.py {toxinidir} --output-format=colorized --reports=no {posargs}
|
|
|
|
[testenv:pylint-pyqtlink]
|
|
basepython = {env:PYTHON:python3}
|
|
ignore_errors = true
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pylint.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m pylint scripts qutebrowser --output-format=colorized --reports=no {posargs}
|
|
{envpython} scripts/dev/run_pylint_on_tests.py {toxinidir} --output-format=colorized --reports=no {posargs}
|
|
|
|
[testenv:pylint-master]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv = {[testenv:pylint]passenv}
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pylint-master.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m pylint scripts qutebrowser --output-format=colorized --reports=no {posargs}
|
|
{envpython} scripts/dev/run_pylint_on_tests.py --output-format=colorized --reports=no {posargs}
|
|
|
|
[testenv:flake8]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-flake8.txt
|
|
commands =
|
|
{envpython} -m flake8 {posargs:qutebrowser tests scripts}
|
|
|
|
[testenv:pyroma]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements-pyroma.txt
|
|
commands =
|
|
{envdir}/bin/pyroma .
|
|
|
|
[testenv:check-manifest]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements-check-manifest.txt
|
|
commands =
|
|
{envdir}/bin/check-manifest --ignore 'qutebrowser/git-commit-id,qutebrowser/html/doc,qutebrowser/html/doc/*,qutebrowser/html/doc/img/cheatsheet-*.png,*/__pycache__'
|
|
|
|
[testenv:docs]
|
|
basepython = {env:PYTHON:python3}
|
|
whitelist_externals = git
|
|
passenv = CI GITHUB_REF
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
commands =
|
|
{envpython} scripts/dev/src2asciidoc.py {posargs}
|
|
{envpython} scripts/dev/check_doc_changes.py {posargs}
|
|
{envpython} scripts/asciidoc2html.py {posargs}
|
|
|
|
[testenv:pyinstaller-{64,32}]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv = APPDATA HOME PYINSTALLER_DEBUG
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyinstaller.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
commands =
|
|
{envbindir}/pyinstaller --noconfirm misc/qutebrowser.spec
|
|
|
|
[testenv:eslint]
|
|
basepython = python3
|
|
deps =
|
|
passenv = TERM
|
|
whitelist_externals = eslint
|
|
changedir = {toxinidir}/qutebrowser/javascript
|
|
commands = eslint --report-unused-disable-directives .
|
|
|
|
[testenv:shellcheck]
|
|
basepython = python3
|
|
deps =
|
|
whitelist_externals = bash
|
|
commands = bash scripts/dev/run_shellcheck.sh {posargs}
|
|
|
|
[testenv:mypy]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv = TERM MYPY_FORCE_TERMINAL_WIDTH
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-dev.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
|
-r{toxinidir}/misc/requirements/requirements-mypy.txt
|
|
commands =
|
|
{envpython} -m mypy qutebrowser {posargs}
|
|
|
|
[testenv:yamllint]
|
|
basepython = {env:PYTHON:python3}
|
|
deps = -r{toxinidir}/misc/requirements/requirements-yamllint.txt
|
|
commands =
|
|
{envpython} -m yamllint -f colored --strict . {posargs}
|
|
|
|
[testenv:mypy-diff]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv = {[testenv:mypy]passenv}
|
|
deps = {[testenv:mypy]deps}
|
|
commands =
|
|
{envpython} -m mypy --cobertura-xml-report {envtmpdir} qutebrowser tests {posargs}
|
|
{envdir}/bin/diff-cover --fail-under=100 --compare-branch={env:DIFF_BRANCH:origin/{env:GITHUB_BASE_REF:master}} {envtmpdir}/cobertura.xml
|
|
|
|
[testenv:sphinx]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv =
|
|
usedevelop = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
-r{toxinidir}/misc/requirements/requirements-sphinx.txt
|
|
commands =
|
|
{envpython} -m sphinx -jauto -W --color {posargs} {toxinidir}/doc/extapi/ {toxinidir}/doc/extapi/_build/
|
|
|
|
[testenv:build-release]
|
|
basepython = {env:PYTHON:python3}
|
|
passenv = *
|
|
usedevelop = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tox.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
|
-r{toxinidir}/misc/requirements/requirements-dev.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyinstaller.txt
|
|
commands =
|
|
{envpython} {toxinidir}/scripts/dev/build_release.py {posargs}
|