qutebrowser/tox.ini
Florian Bruhin cab6bf87b4 tox: Update to pylint 1.5.1.
* Don't emit unsubscriptable-object if the node is found
  inside an abstract class.

* Add wrong-import-position to check_messages's decorator arguments
  for ImportChecker.leave_module

  This fixes an esoteric bug which occurs when ungrouped-imports and
  wrong-import-order are disabled and pylint is executed on multiple files.
  What happens is that without wrong-import-position in check_messages,
  leave_module will never be called, which means that the first non-import node
  from other files might leak into the current file,
  leading to wrong-import-position being emitted by pylint.

* Fix a crash which occurred when old visit methods are encountered
  in plugin modules.

* Don't emit import-self and cyclic-import for relative imports
  of modules with the same name as the package itself.
2015-12-02 17:53:59 +01:00

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.4
Flask==0.10.1
glob2==0.4.1
httpbin==0.4.0
hypothesis==1.15.0
itsdangerous==0.24
Mako==1.0.3
parse==1.6.6
parse-type==0.3.4
py==1.4.31
pytest==2.8.3
pytest-bdd==2.15.0
pytest-catchlog==1.2.0
pytest-cov==2.2.0
pytest-faulthandler==1.1.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.5
cherrypy==3.8.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.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 = {[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.3
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.3
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.3
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.29
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