9c0ef87a62
Upstream changelog: New Features - Added the D104 error code - "Missing docstring in public package". This new error is turned on by default. Missing docstring in __init__.py files which previously resulted in D100 errors ("Missing docstring in public module") will now result in D104. - Added the D105 error code - "Missing docstring in magic method'. This new error is turned on by default. Missing docstrings in magic method which previously resulted in D102 error ("Missing docstring in public method") will now result in D105. Note that exceptions to this rule are variadic magic methods - specifically __init__, __call__ and __new__, which will be considered non-magic and missing docstrings in them will result in D102. - Support the option to exclude all error codes. Running pep257 with --select= (or select= in the configuration file) will exclude all errors which could then be added one by one using add-select. Useful for projects new to pep257. - Added check D211: No blank lines allowed before class docstring. This change is a result of a change to the official PEP257 convention. Therefore, D211 will now be checked by default instead of D203, which required a single blank line before a class docstring. - Configuration files are now handled correctly. The closer a configuration file is to a checked file the more it matters. Configuration files no longer support explain, source, debug, verbose or count. Bug Fixes - On Python 2.x, D302 ("Use u""" for Unicode docstrings") is not reported if unicode_literals is imported from __future__. - Fixed a bug where there was no executable for pep257 on Windows.
207 lines
5.8 KiB
INI
207 lines
5.8 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
|
|
deps =
|
|
-r{toxinidir}/requirements.txt
|
|
wheel==0.26.0
|
|
py==1.4.30
|
|
pytest==2.7.3 # rq.filter: <2.8.0
|
|
pytest-capturelog==0.7
|
|
pytest-qt==1.7.0
|
|
pytest-mock==0.8.1
|
|
pytest-html==1.6
|
|
pytest-faulthandler==1.0.1
|
|
pytest-sugar==0.4.0
|
|
xvfbwrapper==0.2.5
|
|
hypothesis==1.11.4
|
|
coverage==4.0.0
|
|
pytest-cov==2.2.0
|
|
beautifulsoup4==4.4.1
|
|
httpbin==0.3.0
|
|
itsdangerous==0.24
|
|
Werkzeug==0.10.4
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m py.test --strict -rfEsw --cov qutebrowser --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]
|
|
basepython = python3
|
|
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]
|
|
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.4
|
|
skip_install = true
|
|
setenv = PYTHONPATH={toxinidir}/scripts/dev
|
|
passenv =
|
|
deps =
|
|
{[testenv]deps}
|
|
{[testenv:misc]deps}
|
|
astroid==1.3.8
|
|
pylint==1.4.4
|
|
logilab-common==1.0.2
|
|
six==1.10.0
|
|
vulture==0.8.1
|
|
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
|
|
|
|
[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
|
|
py==1.4.30
|
|
pytest==2.8.2
|
|
pyflakes==1.0.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
|
|
py==1.4.30
|
|
pytest==2.8.2
|
|
pep8==1.6.2
|
|
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
|
|
py==1.4.30
|
|
pytest==2.8.2
|
|
mccabe==0.3.1
|
|
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.2
|
|
docutils==0.12
|
|
commands =
|
|
{envdir}/bin/pyroma .
|
|
|
|
[testenv:check-manifest]
|
|
basepython = python3
|
|
skip_install = true
|
|
passenv =
|
|
deps =
|
|
check-manifest==0.25
|
|
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
|