ac0409c60d
It causes stuff to blow up when something in there got upgraded, and we ask pip to downgrade one of its dependencies. We still keep the file around so we get notified about updates.
274 lines
7.8 KiB
INI
274 lines
7.8 KiB
INI
# Tox (http://tox.testrun.org/) 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 = py34,py35,py36-cov,misc,vulture,flake8,pylint,pyroma,check-manifest
|
|
distshare = {toxworkdir}
|
|
skipsdist = true
|
|
|
|
[testenv]
|
|
# https://bitbucket.org/hpk42/tox/issue/246/ - only needed for Windows though
|
|
setenv =
|
|
QT_QPA_PLATFORM_PLUGIN_PATH={envdir}/Lib/site-packages/PyQt5/plugins/platforms
|
|
PYTEST_QT_API=pyqt5
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI TRAVIS XDG_* QUTE_* DOCKER
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/run_pytest.py {posargs:tests}
|
|
|
|
|
|
# test envs with coverage
|
|
|
|
[testenv:py36-cov]
|
|
basepython = python3.6
|
|
setenv = {[testenv]setenv}
|
|
passenv = {[testenv]passenv}
|
|
deps = {[testenv]deps}
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/run_pytest.py --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
[testenv:py35-cov]
|
|
basepython = python3.5
|
|
setenv = {[testenv]setenv}
|
|
passenv = {[testenv]passenv}
|
|
deps = {[testenv]deps}
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/run_pytest.py --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
[testenv:py34-cov]
|
|
basepython = python3.4
|
|
setenv = {[testenv]setenv}
|
|
passenv = {[testenv]passenv}
|
|
deps = {[testenv]deps}
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/run_pytest.py --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
# test envs with PyQt5 from PyPI
|
|
|
|
[testenv:py35-pyqt56]
|
|
basepython = python3.5
|
|
setenv =
|
|
{[testenv]setenv}
|
|
QUTE_BDD_WEBENGINE=true
|
|
passenv = {[testenv]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
PyQt5==5.6
|
|
commands = {envpython} scripts/dev/run_pytest.py {posargs:tests}
|
|
|
|
[testenv:py35-pyqt571]
|
|
basepython = python3.5
|
|
setenv =
|
|
{[testenv]setenv}
|
|
QUTE_BDD_WEBENGINE=true
|
|
passenv = {[testenv]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
PyQt5==5.7.1
|
|
commands = {envpython} scripts/dev/run_pytest.py {posargs:tests}
|
|
|
|
[testenv:py36-pyqt571]
|
|
basepython = python3.6
|
|
setenv =
|
|
{[testenv]setenv}
|
|
QUTE_BDD_WEBENGINE=true
|
|
passenv = {[testenv]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
PyQt5==5.7.1
|
|
commands = {envpython} scripts/dev/run_pytest.py {posargs:tests}
|
|
|
|
[testenv:py35-pyqt58]
|
|
basepython = python3.5
|
|
setenv =
|
|
{[testenv]setenv}
|
|
QUTE_BDD_WEBENGINE=true
|
|
passenv = {[testenv]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
PyQt5==5.8.0
|
|
commands = {envpython} scripts/dev/run_pytest.py {posargs:tests}
|
|
|
|
[testenv:py36-pyqt58]
|
|
basepython = python3.6
|
|
setenv =
|
|
{[testenv]setenv}
|
|
QUTE_BDD_WEBENGINE=true
|
|
passenv = {[testenv]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
PyQt5==5.8.0
|
|
commands = {envpython} scripts/dev/run_pytest.py {posargs:tests}
|
|
|
|
# other envs
|
|
|
|
[testenv:mkvenv]
|
|
basepython = python3
|
|
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
|
|
envdir = {toxinidir}/.venv
|
|
usedevelop = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
# This is used for Windows, since binary name is different
|
|
[testenv:mkvenv-win]
|
|
basepython = python.exe
|
|
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
|
|
envdir = {toxinidir}/.venv
|
|
usedevelop = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
# This is undocumented, but it's a common typo, so let's make it work
|
|
[testenv:mkenv]
|
|
basepython = {[testenv:mkvenv]basepython}
|
|
commands = {[testenv:mkvenv]commands}
|
|
envdir = {[testenv:mkvenv]envdir}
|
|
usedevelop = {[testenv:mkvenv]usedevelop}
|
|
deps = {[testenv:mkvenv]deps}
|
|
|
|
# Virtualenv with PyQt5 from PyPI
|
|
[testenv:mkvenv-pypi]
|
|
basepython = python3
|
|
envdir = {toxinidir}/.venv
|
|
commands = {envpython} -c ""
|
|
usedevelop = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
PyQt5
|
|
|
|
[testenv:unittests-frozen]
|
|
# cx_Freeze doesn't support Python 3.5 yet
|
|
basepython = python3.4
|
|
passenv = {[testenv]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
-r{toxinidir}/misc/requirements/requirements-cxfreeze.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/freeze_tests.py build_exe -b {envdir}/build
|
|
{envdir}/build/run-frozen-tests {posargs}
|
|
|
|
[testenv:misc]
|
|
ignore_errors = true
|
|
basepython = python3
|
|
# For global .gitignore files
|
|
passenv = HOME
|
|
deps =
|
|
commands =
|
|
{envpython} scripts/dev/misc_checks.py git
|
|
{envpython} scripts/dev/misc_checks.py vcs
|
|
{envpython} scripts/dev/misc_checks.py spelling
|
|
|
|
[testenv:vulture]
|
|
basepython = python3
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-vulture.txt
|
|
setenv = PYTHONPATH={toxinidir}
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/run_vulture.py
|
|
|
|
[testenv:pylint]
|
|
basepython = python3
|
|
ignore_errors = true
|
|
passenv =
|
|
deps =
|
|
{[testenv]deps}
|
|
-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 = python3
|
|
passenv = {[testenv:pylint]passenv}
|
|
deps =
|
|
{[testenv]deps}
|
|
-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 = 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 = python3
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements-pyroma.txt
|
|
commands =
|
|
{envdir}/bin/pyroma .
|
|
|
|
[testenv:check-manifest]
|
|
basepython = 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/*,*/__pycache__'
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
whitelist_externals = git
|
|
passenv = TRAVIS_PULL_REQUEST
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/src2asciidoc.py {posargs}
|
|
{envpython} scripts/dev/check_doc_changes.py {posargs}
|
|
{envpython} scripts/asciidoc2html.py {posargs}
|
|
|
|
[testenv:cxfreeze-windows]
|
|
# PYTHON is actually required when using this env, but the entire tox.ini would
|
|
# fail if we didn't have a fallback defined.
|
|
basepython = {env:PYTHON:}/python.exe
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-cxfreeze.txt
|
|
commands =
|
|
{envpython} -m pip install -U setuptools
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/freeze.py {posargs}
|
|
|
|
[testenv:pyinstaller]
|
|
basepython = python3
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements-pyinstaller.txt
|
|
whitelist_externals =
|
|
patch
|
|
wget
|
|
commands =
|
|
wget https://patch-diff.githubusercontent.com/raw/pyinstaller/pyinstaller/pull/2403.patch -O {envtmpdir}/pyqt.patch -o/dev/null
|
|
patch -f -p1 -d {envdir}/src/pyinstaller -i {envtmpdir}/pyqt.patch
|
|
{envbindir}/pyinstaller --noconfirm misc/qutebrowser.spec
|
|
|
|
[testenv:eslint]
|
|
deps =
|
|
whitelist_externals = eslint
|
|
changedir = {toxinidir}/qutebrowser/javascript
|
|
commands = eslint --color .
|