76651822bd
Adopt test layout to pytest.
112 lines
3.1 KiB
INI
112 lines
3.1 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 = unittests,misc,pep257,flake8,pylint,pyroma,check-manifest
|
|
|
|
[testenv]
|
|
basepython = python3
|
|
|
|
[testenv:mkvenv]
|
|
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
|
|
envdir = {toxinidir}/.venv
|
|
usedevelop = true
|
|
|
|
[testenv:unittests]
|
|
setenv = QT_QPA_PLATFORM_PLUGIN_PATH={envsitepackagesdir}/PyQt5/plugins/platforms
|
|
deps =
|
|
py==1.4.26
|
|
pytest==2.7.0
|
|
pytest-capturelog==0.7
|
|
pytest-qt==1.3.0
|
|
pytest-mock==0.4.2
|
|
# We don't use {[testenv:mkvenv]commands} here because that seems to be broken
|
|
# on Ubuntu Trusty.
|
|
commands =
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
{envpython} -m py.test {posargs}
|
|
|
|
[testenv:coverage]
|
|
deps =
|
|
{[testenv:unittests]deps}
|
|
coverage==3.7.1
|
|
pytest-cov==1.8.1
|
|
cov-core==1.15.0
|
|
commands =
|
|
{[testenv:mkvenv]commands}
|
|
{envpython} -m py.test --cov qutebrowser --cov-report term --cov-report html {posargs}
|
|
|
|
[testenv:misc]
|
|
commands =
|
|
{envpython} scripts/misc_checks.py git
|
|
{envpython} scripts/misc_checks.py vcs qutebrowser scripts tests
|
|
{envpython} scripts/misc_checks.py spelling qutebrowser scripts tests
|
|
|
|
[testenv:pylint]
|
|
skip_install = true
|
|
setenv = PYTHONPATH={toxinidir}/scripts
|
|
deps =
|
|
-rrequirements.txt
|
|
astroid==1.3.6
|
|
beautifulsoup4==4.3.2
|
|
pylint==1.4.3
|
|
logilab-common==0.63.2
|
|
six==1.9.0
|
|
commands =
|
|
{[testenv:mkvenv]commands}
|
|
{envdir}/bin/pylint scripts qutebrowser --rcfile=.pylintrc --output-format=colorized --reports=no
|
|
{envpython} scripts/run_pylint_on_tests.py --rcfile=.pylintrc --output-format=colorized --reports=no
|
|
|
|
[testenv:pep257]
|
|
skip_install = true
|
|
deps = pep257==0.5.0
|
|
# Disabled checks:
|
|
# D102: Docstring missing, will be handled by others
|
|
# D209: Blank line before closing """ (removed from PEP257)
|
|
# D402: First line should not be function's signature (false-positives)
|
|
commands = {envpython} -m pep257 scripts tests qutebrowser --ignore=D102,D103,D209,D402 '--match=(?!resources|test_content_disposition).*\.py'
|
|
|
|
[testenv:flake8]
|
|
skip_install = true
|
|
deps =
|
|
-rrequirements.txt
|
|
pyflakes==0.8.1
|
|
pep8==1.5.7 # rq.filter: <1.6.0
|
|
flake8==2.4.0
|
|
commands =
|
|
{[testenv:mkvenv]commands}
|
|
{envdir}/bin/flake8 scripts tests qutebrowser --config=.flake8
|
|
|
|
[testenv:pyroma]
|
|
skip_install = true
|
|
deps =
|
|
pyroma==1.7
|
|
docutils==0.12
|
|
commands =
|
|
{[testenv:mkvenv]commands}
|
|
{envdir}/bin/pyroma .
|
|
|
|
[testenv:check-manifest]
|
|
skip_install = true
|
|
deps =
|
|
check-manifest==0.24
|
|
commands =
|
|
{[testenv:mkvenv]commands}
|
|
{envdir}/bin/check-manifest --ignore 'qutebrowser/git-commit-id,qutebrowser/html/doc,qutebrowser/html/doc/*,*/__pycache__'
|
|
|
|
[testenv:docs]
|
|
skip_install = true
|
|
whitelist_externals = git
|
|
deps =
|
|
-rrequirements.txt
|
|
commands =
|
|
{[testenv:mkvenv]commands}
|
|
{envpython} scripts/src2asciidoc.py
|
|
git --no-pager diff --exit-code --stat
|
|
{envpython} scripts/asciidoc2html.py {posargs}
|
|
|
|
[pytest]
|
|
norecursedirs = .tox .venv
|