a2423b0b6c
This is actually the same release as 1.16.1, but 1.16.1 has been pulled because it contains the following additional change that was not intended to be in a patch release (it's perfectly stable, but is a larger change that should have required a minor version bump): Hypothesis will now perform a series of "health checks" as part of running your tests. These detect and warn about some common error conditions that people often run into which wouldn't necessarily have caued the test to fail but would cause e.g. degraded performance or confusing results.
244 lines
6.6 KiB
INI
244 lines
6.6 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,misc,vulture,pep257,pyflakes,pep8,mccabe,pylint,pyroma,check-manifest
|
|
|
|
[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_*
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
beautifulsoup4==4.4.1
|
|
coverage==4.0.3
|
|
decorator==4.0.6
|
|
Flask==0.10.1
|
|
glob2==0.4.1
|
|
httpbin==0.4.0
|
|
hypothesis==1.17.0
|
|
itsdangerous==0.24
|
|
Mako==1.0.3
|
|
parse==1.6.6
|
|
parse-type==0.3.4
|
|
py==1.4.31
|
|
pytest==2.8.5
|
|
pytest-bdd==2.15.0
|
|
pytest-catchlog==1.2.1
|
|
pytest-cov==2.2.0
|
|
pytest-faulthandler==1.2.0
|
|
pytest-html==1.7
|
|
pytest-mock==0.9.0
|
|
pytest-qt==1.9.0
|
|
pytest-sugar==0.5.1
|
|
pytest-travis-fold==1.2.0
|
|
six==1.10.0
|
|
termcolor==1.1.0
|
|
vulture==0.8.1
|
|
Werkzeug==0.11.2
|
|
wheel==0.26.0
|
|
xvfbwrapper==0.2.6
|
|
cherrypy==3.8.1
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m py.test --strict -rfEsw --faulthandler-timeout=70 --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
|
|
|
|
[testenv:unittests-frozen]
|
|
# cx_Freeze doesn't support Python 3.5 yet
|
|
basepython = python3.4
|
|
passenv = {[testenv]passenv}
|
|
skip_install = true
|
|
deps =
|
|
{[testenv]deps}
|
|
cx_Freeze==4.3.4
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/freeze_tests.py build_exe -b {envdir}/build
|
|
{envdir}/build/run-frozen-tests --strict -rfEsw {posargs}
|
|
|
|
[testenv:unittests-nodisp]
|
|
basepython = python3
|
|
passenv = {[testenv]passenv}
|
|
deps = {[testenv]deps}
|
|
setenv =
|
|
DISPLAY=
|
|
QUTE_NO_DISPLAY_OK=1
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m py.test --strict -rfEw {posargs:tests}
|
|
|
|
[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 = vulture==0.8.1
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/run_vulture.py
|
|
|
|
[testenv:pylint]
|
|
basepython = python3
|
|
ignore_errors = true
|
|
skip_install = true
|
|
setenv = PYTHONPATH={toxinidir}/scripts/dev
|
|
passenv =
|
|
deps =
|
|
{[testenv]deps}
|
|
{[testenv:misc]deps}
|
|
astroid==1.4.1
|
|
pylint==1.5.1
|
|
requests==2.8.1
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m pylint scripts qutebrowser --output-format=colorized --reports=no
|
|
{envpython} scripts/dev/run_pylint_on_tests.py {toxinidir} --output-format=colorized --reports=no
|
|
|
|
[testenv:pylint-tip]
|
|
basepython = python3
|
|
skip_install = true
|
|
setenv = PYTHONPATH={toxinidir}/scripts/dev
|
|
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 --output-format=colorized --reports=no
|
|
{envpython} scripts/dev/run_pylint_on_tests.py --output-format=colorized --reports=no
|
|
|
|
[testenv:pep257]
|
|
basepython = python3
|
|
skip_install = true
|
|
passenv = PYTHON LANG
|
|
deps = pep257==0.7.0
|
|
# Disabled checks:
|
|
# D102: Missing docstring in public method (will be handled by others)
|
|
# D103: Missing docstring in public function (will be handled by others)
|
|
# D104: Missing docstring in public package (will be handled by others)
|
|
# D105: Missing docstring in magic method (will be handled by others)
|
|
# D209: Blank line before closing """ (removed from PEP257)
|
|
# D211: Now b lank lines allowed before class docstring
|
|
# (PEP257 got changed, but let's stick to the old standard)
|
|
# D402: First line should not be function's signature (false-positives)
|
|
commands = {envpython} -m pep257 scripts tests qutebrowser --ignore=D102,D103,D104,D105,D209,D211,D402 '--match=(?!resources|test_*).*\.py'
|
|
|
|
[testenv:pyflakes]
|
|
basepython = python3
|
|
# https://github.com/fschulze/pytest-flakes/issues/6
|
|
setenv = LANG=en_US.UTF-8
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
apipkg==1.4
|
|
execnet==1.4.1
|
|
py==1.4.31
|
|
pyflakes==1.0.0
|
|
pytest==2.8.5
|
|
pytest-cache==1.0
|
|
pytest-flakes==1.0.1
|
|
commands =
|
|
{envpython} -m py.test -q --flakes --ignore=tests --noconftest
|
|
|
|
[testenv:pep8]
|
|
basepython = python3
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
apipkg==1.4
|
|
execnet==1.4.1
|
|
pep8==1.6.2
|
|
py==1.4.31
|
|
pytest==2.8.5
|
|
pytest-cache==1.0
|
|
pytest-pep8==1.0.6
|
|
commands =
|
|
{envpython} -m py.test -q --pep8 --ignore=tests --noconftest
|
|
|
|
|
|
[testenv:mccabe]
|
|
basepython = python3
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
apipkg==1.4
|
|
execnet==1.4.1
|
|
mccabe==0.3.1
|
|
py==1.4.31
|
|
pytest==2.8.5
|
|
pytest-cache==1.0
|
|
pytest-mccabe==0.1
|
|
commands =
|
|
{envpython} -m py.test -q --mccabe --ignore=tests --noconftest
|
|
|
|
[testenv:pyroma]
|
|
basepython = python3
|
|
skip_install = true
|
|
passenv =
|
|
deps =
|
|
pyroma==1.8.3
|
|
docutils==0.12
|
|
commands =
|
|
{envdir}/bin/pyroma .
|
|
|
|
[testenv:check-manifest]
|
|
basepython = python3
|
|
skip_install = true
|
|
passenv =
|
|
deps =
|
|
check-manifest==0.30
|
|
commands =
|
|
{envdir}/bin/check-manifest --ignore 'qutebrowser/git-commit-id,qutebrowser/html/doc,qutebrowser/html/doc/*,*/__pycache__'
|
|
|
|
[testenv:docs]
|
|
basepython = python3
|
|
skip_install = true
|
|
whitelist_externals = git
|
|
passenv =
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/src2asciidoc.py
|
|
git --no-pager diff --exit-code --stat
|
|
{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
|
|
skip_install = true
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
cx_Freeze==4.3.4
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} scripts/dev/freeze.py {posargs}
|
|
|
|
[testenv:eslint]
|
|
skip_install = True
|
|
deps =
|
|
whitelist_externals = eslint
|
|
commands = eslint qutebrowser
|