# 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-cov,misc,vulture,flake8,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.1 decorator==4.0.9 Flask==0.10.1 glob2==0.4.1 httpbin==0.4.1 hypothesis==3.2.0 itsdangerous==0.24 Mako==1.0.4 parse==1.6.6 parse-type==0.3.4 py==1.4.31 pytest==2.9.1 pytest-bdd==2.16.1 pytest-catchlog==1.2.2 pytest-cov==2.2.1 pytest-faulthandler==1.3.0 pytest-mock==1.0.0 pytest-qt==1.11.0 pytest-instafail==0.3.0 pytest-travis-fold==1.2.0 pytest-repeat==0.2 pytest-rerunfailures==2.0.0 pytest-xvfb==0.2.0 six==1.10.0 termcolor==1.1.0 vulture==0.8.1 Werkzeug==0.11.9 wheel==0.29.0 cherrypy==5.4.0 commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} -m pytest {posargs:tests} [testenv:py35-cov] basepython = python3.5 setenv = {[testenv]setenv} passenv = {[testenv]passenv} deps = {[testenv]deps} commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} -m pytest --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests} {envpython} scripts/dev/check_coverage.py {posargs} [testenv:py34-cov] basepython = python3.4 setenv = {[testenv]setenv} passenv = {[testenv]passenv} deps = {[testenv]deps} commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} -m pytest --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 deps = -r{toxinidir}/requirements.txt # This is undocumented, but it's a common typo, so let's make it work [testenv:mkenv] basepython = {[testenv:mkvenv]basepython} commands = {[testenv:mkvenv]commands} envdir = {[testenv:mkvenv]envdir} usedevelop = {[testenv:mkvenv]usedevelop} deps = {[testenv:mkvenv]deps} [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 {posargs} [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 passenv = deps = {[testenv]deps} {[testenv:misc]deps} astroid==1.4.5 pylint==1.5.5 requests==2.10.0 ./scripts/dev/pylint_checkers commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} -m pylint scripts qutebrowser --output-format=colorized --reports=no {posargs} {envpython} scripts/dev/run_pylint_on_tests.py {toxinidir} --output-format=colorized --reports=no {posargs} [testenv:pylint-master] basepython = python3 passenv = {[testenv:pylint]passenv} deps = {[testenv]deps} {[testenv:misc]deps} git+https://github.com/PyCQA/astroid.git git+https://github.com/PyCQA/pylint.git requests==2.10.0 ./scripts/dev/pylint_checkers commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} -m pylint scripts qutebrowser --output-format=colorized --reports=no {posargs} {envpython} scripts/dev/run_pylint_on_tests.py --output-format=colorized --reports=no {posargs} [testenv:flake8] basepython = python3 passenv = deps = -r{toxinidir}/requirements.txt ebb-lint==0.4.4 flake8==2.5.4 flake8-copyright==0.1 flake8-debugger==1.4.0 flake8-deprecated==1.0 flake8-docstrings==0.2.6 flake8-future-import==0.3.2 flake8-mock==0.2 flake8-pep3101==0.3 flake8-putty==0.3.2 flake8-string-format==0.2.1 flake8-tidy-imports==1.0.0 flake8-tuple==0.2.9 hacking==0.11.0 intervaltree==2.1.0 mccabe==0.4.0 packaging==16.7 pbr==1.10.0 # still needed by flake8-docstrings but ignored pep257==0.7.0 pep8==1.7.0 pep8-naming==0.3.3 pydocstyle==1.0.0 pyflakes==1.2.3 pyparsing==2.1.4 six==1.10.0 sortedcontainers==1.4.4 venusian==1.0 commands = {envpython} -m flake8 [testenv:pyroma] basepython = python3 skip_install = true passenv = deps = pyroma==2.0.2 docutils==0.12 commands = {envdir}/bin/pyroma . [testenv:check-manifest] basepython = python3 skip_install = true passenv = deps = check-manifest==0.31 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 = TRAVIS_PULL_REQUEST deps = -r{toxinidir}/requirements.txt commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} scripts/dev/src2asciidoc.py {posargs} {envpython} scripts/dev/check_doc_changes.py {posargs} {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} -m pip install -U setuptools {envpython} scripts/link_pyqt.py --tox {envdir} {envpython} scripts/dev/freeze.py {posargs} [testenv:pyinstaller] basepython = python3 -skip_install = true deps = -r{toxinidir}/requirements.txt PyInstaller==3.2 commands = {envpython} scripts/link_pyqt.py --tox {envdir} {envbindir}/pyinstaller --noconfirm misc/qutebrowser.spec [testenv:eslint] skip_install = True deps = whitelist_externals = eslint commands = eslint qutebrowser