2f51dae2b3
- Hypothesis will no longer write generated code to the file system. This will improve performance on some systems (e.g. if you're using PythonAnywhere which is running your code from NFS) and prevent some annoying interactions with auto-restarting systems. - Hypothesis will cache the creation of some strategies. This can significantly improve performance for code that uses flatmap or composite and thus has to instantiate strategies a lot.
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.18.1
|
|
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.16.0
|
|
pytest-catchlog==1.2.1
|
|
pytest-cov==2.2.0
|
|
pytest-faulthandler==1.3.0
|
|
pytest-html==1.7
|
|
pytest-mock==0.9.0
|
|
pytest-qt==1.10.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.3
|
|
wheel==0.26.0
|
|
xvfbwrapper==0.2.6
|
|
cherrypy==4.0.0
|
|
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.3
|
|
pylint==1.5.2
|
|
requests==2.9.0
|
|
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 = {[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 --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
|