# 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] # https://bitbucket.org/hpk42/tox/issue/246/ setenv = QT_QPA_PLATFORM_PLUGIN_PATH={envdir}/lib/python3.4/PyQt5/plugins/platforms passenv = DISPLAY XAUTHORITY HOME deps = py==1.4.27 pytest==2.7.0 pytest-capturelog==0.7 pytest-qt==1.3.0 pytest-mock==0.5 pytest-html==1.1 # 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 --strict {posargs} [testenv:coverage] passenv = DISPLAY XAUTHORITY HOME 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 --strict --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 passenv = LANG # 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.8.1 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 markers = gui: Tests using the GUI (e.g. spawning widgets)