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]
|
2015-10-06 06:44:45 +02:00
|
|
|
envlist = py34,py35,misc,vulture,pep257,pyflakes,pep8,mccabe,pylint,pyroma,check-manifest
|
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
|
2015-11-02 06:36:30 +01:00
|
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI TRAVIS XDG_*
|
2015-03-30 22:09:56 +02:00
|
|
|
deps =
|
2015-05-27 07:45:09 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-11-02 07:47:48 +01:00
|
|
|
beautifulsoup4==4.4.1
|
2015-11-24 21:35:29 +01:00
|
|
|
coverage==4.0.3
|
2015-11-02 07:47:48 +01:00
|
|
|
decorator==4.0.4
|
|
|
|
Flask==0.10.1
|
|
|
|
glob2==0.4.1
|
|
|
|
httpbin==0.4.0
|
2015-11-24 21:34:43 +01:00
|
|
|
hypothesis==1.15.0
|
2015-11-02 07:47:48 +01:00
|
|
|
itsdangerous==0.24
|
|
|
|
Mako==1.0.3
|
|
|
|
parse==1.6.6
|
|
|
|
parse-type==0.3.4
|
2015-11-28 20:38:20 +01:00
|
|
|
py==1.4.31
|
2015-11-19 22:57:15 +01:00
|
|
|
pytest==2.8.3
|
2015-11-02 07:47:48 +01:00
|
|
|
pytest-bdd==2.15.0
|
2015-11-11 19:57:03 +01:00
|
|
|
pytest-catchlog==1.2.0
|
2015-11-02 07:47:48 +01:00
|
|
|
pytest-cov==2.2.0
|
2015-11-13 06:22:29 +01:00
|
|
|
pytest-faulthandler==1.1.0
|
2015-11-02 07:47:48 +01:00
|
|
|
pytest-html==1.7
|
2015-11-18 21:15:36 +01:00
|
|
|
pytest-mock==0.9.0
|
2015-11-02 07:47:48 +01:00
|
|
|
pytest-qt==1.9.0
|
2015-10-12 19:05:59 +02:00
|
|
|
pytest-sugar==0.5.1
|
2015-11-04 23:15:51 +01:00
|
|
|
pytest-travis-fold==1.2.0
|
2015-11-02 07:47:48 +01:00
|
|
|
six==1.10.0
|
|
|
|
termcolor==1.1.0
|
2015-10-20 23:32:04 +02:00
|
|
|
vulture==0.8.1
|
2015-11-12 20:30:26 +01:00
|
|
|
Werkzeug==0.11.2
|
2015-11-02 07:47:48 +01:00
|
|
|
wheel==0.26.0
|
|
|
|
xvfbwrapper==0.2.5
|
2015-11-20 13:24:38 +01:00
|
|
|
cherrypy==3.8.0
|
2015-08-31 21:26:30 +02:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-11-13 06:23:31 +01:00
|
|
|
{envpython} -m py.test --strict -rfEsw --faulthandler-timeout=70 --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
|
|
|
|
|
|
|
[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
|
2015-03-26 09:18:21 +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
|
|
|
skip_install = true
|
|
|
|
deps =
|
2015-10-05 19:06:00 +02:00
|
|
|
{[testenv]deps}
|
2015-06-18 11:07:23 +02:00
|
|
|
cx_Freeze==4.3.4
|
|
|
|
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
|
2015-06-18 11:07:23 +02:00
|
|
|
{envdir}/build/run-frozen-tests --strict -rfEsw {posargs}
|
|
|
|
|
2015-09-28 21:55:35 +02:00
|
|
|
[testenv:unittests-nodisp]
|
|
|
|
basepython = python3
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps = {[testenv]deps}
|
2015-09-28 22:19:33 +02:00
|
|
|
setenv =
|
|
|
|
DISPLAY=
|
|
|
|
QUTE_NO_DISPLAY_OK=1
|
2015-09-28 21:55:35 +02:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-10-05 19:06:00 +02:00
|
|
|
{envpython} -m py.test --strict -rfEw {posargs:tests}
|
2015-09-28 21:55:35 +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
|
2015-10-05 23:27:19 +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
|
|
|
|
deps = vulture==0.8.1
|
|
|
|
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-10-04 14:31:54 +02:00
|
|
|
basepython = python3.4
|
2015-11-30 07:00:20 +01:00
|
|
|
ignore_errors = true
|
2015-03-26 08:00:20 +01:00
|
|
|
skip_install = true
|
2015-06-28 22:31:30 +02:00
|
|
|
setenv = PYTHONPATH={toxinidir}/scripts/dev
|
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}
|
2015-10-05 06:53:56 +02:00
|
|
|
{[testenv:misc]deps}
|
2015-08-03 10:38:42 +02:00
|
|
|
astroid==1.3.8
|
2015-06-30 20:50:12 +02:00
|
|
|
pylint==1.4.4
|
2015-10-12 19:06:49 +02:00
|
|
|
logilab-common==1.1.0
|
2015-11-17 19:46:24 +01:00
|
|
|
requests==2.8.1
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-10 18:33:37 +02:00
|
|
|
{envpython} -m pylint scripts qutebrowser --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/run_pylint_on_tests.py --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
|
2015-10-26 18:51:41 +01:00
|
|
|
|
|
|
|
[testenv:pylint-tip]
|
|
|
|
basepython = python3
|
|
|
|
skip_install = true
|
|
|
|
setenv = {[testenv:pylint]setenv}
|
|
|
|
passenv = {[testenv:pylint]passenv}
|
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
|
|
|
{[testenv:misc]deps}
|
|
|
|
hg+https://bitbucket.org/logilab/astroid
|
|
|
|
hg+https://bitbucket.org/logilab/pylint
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
|
|
{envpython} -m pylint scripts qutebrowser --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
|
|
|
|
{envpython} scripts/dev/run_pylint_on_tests.py --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pep257]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 08:00:20 +01:00
|
|
|
skip_install = true
|
2015-06-10 18:33:15 +02:00
|
|
|
passenv = PYTHON LANG
|
2015-10-10 12:59:45 +02:00
|
|
|
deps = pep257==0.7.0
|
2015-03-26 08:00:20 +01:00
|
|
|
# Disabled checks:
|
2015-07-21 10:26:57 +02:00
|
|
|
# D102: Missing docstring in public method (will be handled by others)
|
|
|
|
# D103: Missing docstring in public function (will be handled by others)
|
2015-10-10 12:59:45 +02:00
|
|
|
# D104: Missing docstring in public package (will be handled by others)
|
|
|
|
# D105: Missing docstring in magic method (will be handled by others)
|
2015-03-26 08:00:20 +01:00
|
|
|
# D209: Blank line before closing """ (removed from PEP257)
|
2015-10-10 12:59:45 +02:00
|
|
|
# D211: Now b lank lines allowed before class docstring
|
|
|
|
# (PEP257 got changed, but let's stick to the old standard)
|
2015-03-26 08:00:20 +01:00
|
|
|
# D402: First line should not be function's signature (false-positives)
|
2015-10-10 12:59:45 +02:00
|
|
|
commands = {envpython} -m pep257 scripts tests qutebrowser --ignore=D102,D103,D104,D105,D209,D211,D402 '--match=(?!resources|test_*).*\.py'
|
2015-03-26 08:00:20 +01:00
|
|
|
|
2015-06-02 20:51:06 +02:00
|
|
|
[testenv:pyflakes]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-06-02 20:51:06 +02:00
|
|
|
# https://github.com/fschulze/pytest-flakes/issues/6
|
|
|
|
setenv = LANG=en_US.UTF-8
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-10-14 18:28:39 +02:00
|
|
|
apipkg==1.4
|
|
|
|
execnet==1.4.1
|
2015-11-28 20:38:20 +01:00
|
|
|
py==1.4.31
|
2015-09-21 07:15:48 +02:00
|
|
|
pyflakes==1.0.0
|
2015-11-19 22:57:15 +01:00
|
|
|
pytest==2.8.3
|
2015-10-14 18:28:39 +02:00
|
|
|
pytest-cache==1.0
|
2015-09-17 19:03:43 +02:00
|
|
|
pytest-flakes==1.0.1
|
2015-06-02 20:51:06 +02:00
|
|
|
commands =
|
2015-10-05 22:26:37 +02:00
|
|
|
{envpython} -m py.test -q --flakes --ignore=tests --noconftest
|
2015-06-02 20:51:06 +02:00
|
|
|
|
|
|
|
[testenv:pep8]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
|
|
|
passenv =
|
2015-06-02 20:51:06 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2015-10-14 18:28:39 +02:00
|
|
|
apipkg==1.4
|
|
|
|
execnet==1.4.1
|
|
|
|
pep8==1.6.2
|
2015-11-28 20:38:20 +01:00
|
|
|
py==1.4.31
|
2015-11-19 22:57:15 +01:00
|
|
|
pytest==2.8.3
|
2015-10-14 18:28:39 +02:00
|
|
|
pytest-cache==1.0
|
2015-06-02 20:51:06 +02:00
|
|
|
pytest-pep8==1.0.6
|
|
|
|
commands =
|
2015-10-05 22:26:37 +02:00
|
|
|
{envpython} -m py.test -q --pep8 --ignore=tests --noconftest
|
|
|
|
|
2015-06-02 20:51:06 +02:00
|
|
|
|
|
|
|
[testenv:mccabe]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
|
|
|
passenv =
|
2015-06-02 20:51:06 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2015-10-14 18:28:39 +02:00
|
|
|
apipkg==1.4
|
|
|
|
execnet==1.4.1
|
|
|
|
mccabe==0.3.1
|
2015-11-28 20:38:20 +01:00
|
|
|
py==1.4.31
|
2015-11-19 22:57:15 +01:00
|
|
|
pytest==2.8.3
|
2015-10-14 18:28:39 +02:00
|
|
|
pytest-cache==1.0
|
2015-06-02 20:51:06 +02:00
|
|
|
pytest-mccabe==0.1
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-10-05 22:26:37 +02:00
|
|
|
{envpython} -m py.test -q --mccabe --ignore=tests --noconftest
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pyroma]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-11-09 09:46:02 +01:00
|
|
|
pyroma==1.8.3
|
2015-03-26 08:00:20 +01:00
|
|
|
docutils==0.12
|
|
|
|
commands =
|
|
|
|
{envdir}/bin/pyroma .
|
|
|
|
|
|
|
|
[testenv:check-manifest]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-11-21 10:44:58 +01:00
|
|
|
check-manifest==0.29
|
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:19:55 +01:00
|
|
|
skip_install = true
|
2015-03-26 20:37:53 +01:00
|
|
|
whitelist_externals = git
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
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}
|
2015-06-28 23:04:18 +02:00
|
|
|
{envpython} scripts/dev/src2asciidoc.py
|
2015-03-26 20:37:53 +01:00
|
|
|
git --no-pager diff --exit-code --stat
|
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
|
|
|
|
skip_install = true
|
2015-09-11 19:43:29 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
cx_Freeze==4.3.4
|
2015-06-23 18:36:10 +02:00
|
|
|
commands =
|
|
|
|
{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
|
|
|
|
|
|
|
[testenv:eslint]
|
|
|
|
skip_install = True
|
|
|
|
deps =
|
|
|
|
whitelist_externals = eslint
|
|
|
|
commands = eslint qutebrowser
|