2015-03-26 08:00:20 +01:00
|
|
|
# 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]
|
2017-01-13 18:25:26 +01:00
|
|
|
envlist = py34,py35,py36-cov,misc,vulture,flake8,pylint,pyroma,check-manifest
|
2016-07-20 16:02:14 +02:00
|
|
|
distshare = {toxworkdir}
|
2016-08-09 11:08:19 +02:00
|
|
|
skipsdist = true
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv]
|
2015-05-16 14:22:56 +02:00
|
|
|
# https://bitbucket.org/hpk42/tox/issue/246/ - only needed for Windows though
|
2015-08-07 06:38:12 +02:00
|
|
|
setenv =
|
|
|
|
QT_QPA_PLATFORM_PLUGIN_PATH={envdir}/Lib/site-packages/PyQt5/plugins/platforms
|
|
|
|
PYTEST_QT_API=pyqt5
|
2016-12-20 21:32:46 +01:00
|
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI TRAVIS XDG_* QUTE_* DOCKER
|
2015-03-30 22:09:56 +02:00
|
|
|
deps =
|
2015-05-27 07:45:09 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2016-05-29 16:53:54 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-tests.txt
|
2016-01-24 20:01:14 +01:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2017-03-18 21:03:52 +01:00
|
|
|
{envpython} -m pytest {posargs:tests}
|
2016-01-24 20:01:14 +01:00
|
|
|
|
2017-02-08 14:02:03 +01:00
|
|
|
|
|
|
|
# test envs with coverage
|
|
|
|
|
2017-01-13 18:25:26 +01:00
|
|
|
[testenv:py36-cov]
|
|
|
|
basepython = python3.6
|
|
|
|
setenv = {[testenv]setenv}
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps = {[testenv]deps}
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2017-03-18 21:03:52 +01:00
|
|
|
{envpython} -m pytest --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
2017-01-13 18:25:26 +01:00
|
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
|
2016-01-24 20:01:14 +01:00
|
|
|
[testenv:py35-cov]
|
|
|
|
basepython = python3.5
|
|
|
|
setenv = {[testenv]setenv}
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps = {[testenv]deps}
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2017-03-18 21:03:52 +01:00
|
|
|
{envpython} -m pytest --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
2016-01-24 20:01:14 +01:00
|
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
|
|
|
|
[testenv:py34-cov]
|
|
|
|
basepython = python3.4
|
|
|
|
setenv = {[testenv]setenv}
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps = {[testenv]deps}
|
2015-08-31 21:26:30 +02:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2017-03-18 21:03:52 +01:00
|
|
|
{envpython} -m pytest --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
2015-10-05 19:06:00 +02:00
|
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
2015-08-08 21:11:38 +02:00
|
|
|
|
2017-02-08 14:02:03 +01:00
|
|
|
# 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
|
2017-03-18 21:03:52 +01:00
|
|
|
commands = {envpython} -m pytest {posargs:tests}
|
2017-02-08 14:02:03 +01:00
|
|
|
|
|
|
|
[testenv:py35-pyqt571]
|
|
|
|
basepython = python3.5
|
|
|
|
setenv =
|
|
|
|
{[testenv]setenv}
|
|
|
|
QUTE_BDD_WEBENGINE=true
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
|
|
|
PyQt5==5.7.1
|
2017-03-18 21:03:52 +01:00
|
|
|
commands = {envpython} -m pytest {posargs:tests}
|
2017-02-08 14:02:03 +01:00
|
|
|
|
|
|
|
[testenv:py36-pyqt571]
|
|
|
|
basepython = python3.6
|
|
|
|
setenv =
|
|
|
|
{[testenv]setenv}
|
|
|
|
QUTE_BDD_WEBENGINE=true
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
|
|
|
PyQt5==5.7.1
|
2017-03-18 21:03:52 +01:00
|
|
|
commands = {envpython} -m pytest {posargs:tests}
|
2017-02-08 14:02:03 +01:00
|
|
|
|
2017-02-17 07:02:13 +01:00
|
|
|
[testenv:py35-pyqt58]
|
|
|
|
basepython = python3.5
|
|
|
|
setenv =
|
|
|
|
{[testenv]setenv}
|
|
|
|
QUTE_BDD_WEBENGINE=true
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
2017-03-13 07:39:21 +01:00
|
|
|
PyQt5==5.8.1.1
|
2017-03-18 21:03:52 +01:00
|
|
|
commands = {envpython} -m pytest {posargs:tests}
|
2017-02-17 07:02:13 +01:00
|
|
|
|
|
|
|
[testenv:py36-pyqt58]
|
|
|
|
basepython = python3.6
|
|
|
|
setenv =
|
|
|
|
{[testenv]setenv}
|
|
|
|
QUTE_BDD_WEBENGINE=true
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
2017-03-13 09:11:22 +01:00
|
|
|
PyQt5==5.8.1.1
|
2017-03-18 21:03:52 +01:00
|
|
|
commands = {envpython} -m pytest {posargs:tests}
|
2017-02-17 07:02:13 +01:00
|
|
|
|
2017-02-08 14:02:03 +01:00
|
|
|
# other envs
|
|
|
|
|
2015-08-08 21:11:38 +02:00
|
|
|
[testenv:mkvenv]
|
2015-09-30 06:37:00 +02:00
|
|
|
basepython = python3
|
2015-08-08 21:11:38 +02:00
|
|
|
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
|
|
|
|
envdir = {toxinidir}/.venv
|
|
|
|
usedevelop = true
|
2016-01-19 06:19:54 +01:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2015-03-26 09:18:21 +01:00
|
|
|
|
2016-09-08 18:50:53 +02:00
|
|
|
# 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
|
|
|
|
|
2016-05-15 09:59:44 +02:00
|
|
|
# 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}
|
|
|
|
|
2017-02-25 18:17:32 +01:00
|
|
|
# Virtualenv with PyQt5 from PyPI
|
|
|
|
[testenv:mkvenv-pypi]
|
|
|
|
basepython = python3
|
|
|
|
envdir = {toxinidir}/.venv
|
|
|
|
commands = {envpython} -c ""
|
|
|
|
usedevelop = true
|
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2017-03-08 19:06:35 +01:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
2017-02-25 18:17:32 +01:00
|
|
|
|
2015-06-18 11:07:23 +02:00
|
|
|
[testenv:unittests-frozen]
|
2015-10-24 16:18:09 +02:00
|
|
|
# cx_Freeze doesn't support Python 3.5 yet
|
|
|
|
basepython = python3.4
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv = {[testenv]passenv}
|
2015-06-18 11:07:23 +02:00
|
|
|
deps =
|
2015-10-05 19:06:00 +02:00
|
|
|
{[testenv]deps}
|
2016-05-29 16:53:54 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-cxfreeze.txt
|
2015-06-18 11:07:23 +02:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/freeze_tests.py build_exe -b {envdir}/build
|
2016-01-24 21:10:22 +01:00
|
|
|
{envdir}/build/run-frozen-tests {posargs}
|
2015-06-18 11:07:23 +02:00
|
|
|
|
2015-03-26 08:00:20 +01:00
|
|
|
[testenv:misc]
|
2015-11-30 07:00:20 +01:00
|
|
|
ignore_errors = true
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-08-08 14:46:23 +02:00
|
|
|
# For global .gitignore files
|
|
|
|
passenv = HOME
|
2016-08-09 11:10:50 +02:00
|
|
|
deps =
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/misc_checks.py git
|
|
|
|
{envpython} scripts/dev/misc_checks.py vcs
|
|
|
|
{envpython} scripts/dev/misc_checks.py spelling
|
2015-10-05 23:27:19 +02:00
|
|
|
|
|
|
|
[testenv:vulture]
|
|
|
|
basepython = python3
|
2016-07-29 08:51:23 +02:00
|
|
|
deps =
|
2016-08-09 13:54:54 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2016-07-29 08:51:23 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-vulture.txt
|
2016-08-09 13:54:54 +02:00
|
|
|
setenv = PYTHONPATH={toxinidir}
|
2015-10-05 23:27:19 +02:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-10-04 23:02:03 +02:00
|
|
|
{envpython} scripts/dev/run_vulture.py
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pylint]
|
2015-11-30 07:38:49 +01:00
|
|
|
basepython = python3
|
2015-11-30 07:00:20 +01:00
|
|
|
ignore_errors = true
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-10-05 19:06:00 +02:00
|
|
|
{[testenv]deps}
|
2016-05-29 16:53:54 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-pylint.txt
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-07-07 23:22:42 +02:00
|
|
|
{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}
|
2015-10-26 18:51:41 +01:00
|
|
|
|
2016-03-09 21:20:30 +01:00
|
|
|
[testenv:pylint-master]
|
2015-10-26 18:51:41 +01:00
|
|
|
basepython = python3
|
2015-12-15 11:49:06 +01:00
|
|
|
passenv = {[testenv:pylint]passenv}
|
2015-10-26 18:51:41 +01:00
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
2016-06-02 09:54:51 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-pylint-master.txt
|
2015-10-26 18:51:41 +01:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-09 21:20:52 +01:00
|
|
|
{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}
|
2015-03-26 08:00:20 +01:00
|
|
|
|
2016-01-21 18:11:31 +01:00
|
|
|
[testenv:flake8]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2016-05-29 16:53:54 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-flake8.txt
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2016-08-09 17:12:42 +02:00
|
|
|
{envpython} -m flake8 {posargs:qutebrowser tests scripts}
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pyroma]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
|
|
|
passenv =
|
2016-08-09 11:10:50 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/misc/requirements/requirements-pyroma.txt
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
|
|
|
{envdir}/bin/pyroma .
|
|
|
|
|
|
|
|
[testenv:check-manifest]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
|
|
|
passenv =
|
2016-08-09 11:10:50 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/misc/requirements/requirements-check-manifest.txt
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
|
|
|
{envdir}/bin/check-manifest --ignore 'qutebrowser/git-commit-id,qutebrowser/html/doc,qutebrowser/html/doc/*,*/__pycache__'
|
2015-03-26 09:18:21 +01:00
|
|
|
|
|
|
|
[testenv:docs]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 20:37:53 +01:00
|
|
|
whitelist_externals = git
|
2016-04-20 22:35:02 +02:00
|
|
|
passenv = TRAVIS_PULL_REQUEST
|
2015-03-26 09:18:21 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-03-26 09:18:21 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-16 06:22:36 +01:00
|
|
|
{envpython} scripts/dev/src2asciidoc.py {posargs}
|
2016-04-20 22:35:02 +02:00
|
|
|
{envpython} scripts/dev/check_doc_changes.py {posargs}
|
2015-03-26 09:18:21 +01:00
|
|
|
{envpython} scripts/asciidoc2html.py {posargs}
|
2015-04-03 00:05:20 +02:00
|
|
|
|
2015-06-23 18:36:10 +02:00
|
|
|
[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
|
2015-09-11 19:43:29 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2016-05-29 16:53:54 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-cxfreeze.txt
|
2015-06-23 18:36:10 +02:00
|
|
|
commands =
|
2016-04-04 19:03:13 +02:00
|
|
|
{envpython} -m pip install -U setuptools
|
2015-06-23 18:36:10 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/freeze.py {posargs}
|
2015-10-08 06:12:46 +02:00
|
|
|
|
2016-03-26 19:54:07 +01:00
|
|
|
[testenv:pyinstaller]
|
|
|
|
basepython = python3
|
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2016-05-29 16:53:54 +02:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-pyinstaller.txt
|
2017-03-08 19:06:35 +01:00
|
|
|
-r{toxinidir}/misc/requirements/requirements-pyqt.txt
|
2017-02-19 12:58:58 +01:00
|
|
|
whitelist_externals =
|
|
|
|
patch
|
|
|
|
wget
|
2016-03-26 19:54:07 +01:00
|
|
|
commands =
|
2017-02-19 12:58:58 +01:00
|
|
|
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
|
2016-03-26 19:54:07 +01:00
|
|
|
{envbindir}/pyinstaller --noconfirm misc/qutebrowser.spec
|
|
|
|
|
2015-10-08 06:12:46 +02:00
|
|
|
[testenv:eslint]
|
2016-08-09 11:10:50 +02:00
|
|
|
deps =
|
2015-10-08 06:12:46 +02:00
|
|
|
whitelist_externals = eslint
|
2016-12-06 17:04:14 +01:00
|
|
|
changedir = {toxinidir}/qutebrowser/javascript
|
|
|
|
commands = eslint --color .
|