b0e0b1d073
While pinning setuptools/pip versions is still somewhat desirable, we can't pin it everywhere easily, and the current solution will break stuff on Windows.
187 lines
5.8 KiB
INI
187 lines
5.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-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_*
|
|
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}
|
|
|
|
[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}
|
|
|
|
[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}
|
|
|
|
[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
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envbindir}/pyinstaller --noconfirm misc/qutebrowser.spec
|
|
|
|
[testenv:eslint]
|
|
deps =
|
|
whitelist_externals = eslint
|
|
commands = eslint --color qutebrowser/javascript
|