8a0d89d940
[test] [feature] The default test runner is now py.test. Running “python setup.py test” will make use of py.test instead of nose. nose still works as a test runner as well, however. [lexer] [bug] Major improvements to lexing of intricate Python sections which may contain complex backslash sequences, as well as support for the bitwise operator (e.g. pipe symbol) inside of expression sections distinct from the Mako “filter” operator, provided the operator is enclosed within parentheses or brackets. Pull request courtesy Daniel Martin. [feature] Added new method Template.list_defs(). Pull request courtesy Jonathan Vanasco.
226 lines
6.0 KiB
INI
226 lines
6.0 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
|
|
|
|
[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.9
|
|
Flask==0.10.1
|
|
glob2==0.4.1
|
|
httpbin==0.4.1
|
|
hypothesis==3.1.0
|
|
itsdangerous==0.24
|
|
Mako==1.0.4
|
|
parse==1.6.6
|
|
parse-type==0.3.4
|
|
py==1.4.31
|
|
pytest==2.9.0
|
|
pytest-bdd==2.16.0
|
|
pytest-catchlog==1.2.2
|
|
pytest-cov==2.2.1
|
|
pytest-faulthandler==1.3.0
|
|
pytest-html==1.8.0
|
|
pytest-mock==0.11.0
|
|
pytest-qt==1.11.0
|
|
pytest-instafail==0.3.0
|
|
pytest-travis-fold==1.2.0
|
|
pytest-repeat==0.2
|
|
pytest-rerunfailures==1.0.1
|
|
pytest-xvfb==0.2.0
|
|
six==1.10.0
|
|
termcolor==1.1.0
|
|
vulture==0.8.1
|
|
Werkzeug==0.11.4
|
|
wheel==0.29.0
|
|
cherrypy==5.1.0
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m py.test {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} -m py.test --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} -m py.test --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
|
|
|
|
[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 {posargs}
|
|
|
|
[testenv:unittests-nodisp]
|
|
basepython = python3
|
|
passenv = {[testenv]passenv}
|
|
deps = {[testenv]deps}
|
|
setenv =
|
|
DISPLAY=
|
|
QUTE_NO_DISPLAY=1
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m py.test {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
|
|
passenv =
|
|
deps =
|
|
{[testenv]deps}
|
|
{[testenv:misc]deps}
|
|
astroid==1.4.4
|
|
pylint==1.5.4
|
|
requests==2.9.1
|
|
./scripts/dev/pylint_checkers
|
|
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}
|
|
{[testenv:misc]deps}
|
|
git+https://github.com/PyCQA/astroid.git
|
|
git+https://github.com/PyCQA/pylint.git
|
|
requests==2.9.1
|
|
./scripts/dev/pylint_checkers
|
|
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
|
|
flake8==2.5.4
|
|
flake8-debugger==1.4.0
|
|
pep8-naming==0.3.3
|
|
flake8-putty==0.2.0
|
|
ebb-lint==0.4.4
|
|
flake8-copyright==0.1
|
|
mccabe==0.4.0
|
|
pep8==1.7.0
|
|
pyflakes==1.1.0
|
|
flake8-string-format==0.2.1
|
|
flake8-deprecated==1.0
|
|
flake8-mock==0.2
|
|
flake8-pep3101==0.3
|
|
flake8-docstrings==0.2.5
|
|
pep257==0.7.0 # still needed by flake8-docstrings but ignored
|
|
pydocstyle==1.0.0
|
|
commands =
|
|
{envpython} -m flake8
|
|
|
|
[testenv:pyroma]
|
|
basepython = python3
|
|
skip_install = true
|
|
passenv =
|
|
deps =
|
|
pyroma==2.0.2
|
|
docutils==0.12
|
|
commands =
|
|
{envdir}/bin/pyroma .
|
|
|
|
[testenv:check-manifest]
|
|
basepython = python3
|
|
skip_install = true
|
|
passenv =
|
|
deps =
|
|
check-manifest==0.31
|
|
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
|