# 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.2 decorator==4.0.4 Flask==0.10.1 glob2==0.4.1 httpbin==0.4.0 hypothesis==1.14.0 itsdangerous==0.24 Mako==1.0.3 parse==1.6.6 parse-type==0.3.4 py==1.4.30 pytest==2.7.3 # rq.filter: <2.8.0 pytest-bdd==2.15.0 pytest-capturelog==0.7 pytest-cov==2.2.0 pytest-faulthandler==1.0.1 pytest-html==1.7 pytest-mock==0.8.1 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.1 wheel==0.26.0 xvfbwrapper==0.2.5 commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} -m py.test --strict -rfEsw --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] 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.1.0 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: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 --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 apipkg==1.4 execnet==1.4.1 py==1.4.30 pyflakes==1.0.0 pytest==2.8.2 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.30 pytest==2.8.2 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.30 pytest==2.8.2 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.27 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