2015-03-26 08:00:20 +01:00
|
|
|
# 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]
|
2016-02-19 18:05:51 +01:00
|
|
|
envlist = py34,py35-cov,misc,vulture,flake8,pylint,pyroma,check-manifest
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv]
|
2015-05-16 14:22:56 +02:00
|
|
|
# https://bitbucket.org/hpk42/tox/issue/246/ - only needed for Windows though
|
2015-08-07 06:38:12 +02:00
|
|
|
setenv =
|
|
|
|
QT_QPA_PLATFORM_PLUGIN_PATH={envdir}/Lib/site-packages/PyQt5/plugins/platforms
|
|
|
|
PYTEST_QT_API=pyqt5
|
2015-11-02 06:36:30 +01:00
|
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI TRAVIS XDG_*
|
2015-03-30 22:09:56 +02:00
|
|
|
deps =
|
2015-05-27 07:45:09 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-11-02 07:47:48 +01:00
|
|
|
beautifulsoup4==4.4.1
|
2015-11-24 21:35:29 +01:00
|
|
|
coverage==4.0.3
|
2016-02-08 23:46:41 +01:00
|
|
|
decorator==4.0.9
|
2015-11-02 07:47:48 +01:00
|
|
|
Flask==0.10.1
|
|
|
|
glob2==0.4.1
|
2016-01-27 22:20:07 +01:00
|
|
|
httpbin==0.4.1
|
2016-03-06 16:43:42 +01:00
|
|
|
hypothesis==3.1.0
|
2015-11-02 07:47:48 +01:00
|
|
|
itsdangerous==0.24
|
2016-03-11 06:55:05 +01:00
|
|
|
Mako==1.0.4
|
2015-11-02 07:47:48 +01:00
|
|
|
parse==1.6.6
|
|
|
|
parse-type==0.3.4
|
2015-11-28 20:38:20 +01:00
|
|
|
py==1.4.31
|
2016-03-18 22:41:42 +01:00
|
|
|
pytest==2.9.1
|
2016-03-19 10:41:36 +01:00
|
|
|
pytest-bdd==2.16.1
|
2016-01-24 16:56:12 +01:00
|
|
|
pytest-catchlog==1.2.2
|
2016-01-30 23:33:17 +01:00
|
|
|
pytest-cov==2.2.1
|
2015-12-16 23:09:02 +01:00
|
|
|
pytest-faulthandler==1.3.0
|
2016-02-24 20:14:14 +01:00
|
|
|
pytest-html==1.8.0
|
2016-02-24 20:15:10 +01:00
|
|
|
pytest-mock==0.11.0
|
2016-01-08 09:38:29 +01:00
|
|
|
pytest-qt==1.11.0
|
2016-01-08 10:06:00 +01:00
|
|
|
pytest-instafail==0.3.0
|
2015-11-04 23:15:51 +01:00
|
|
|
pytest-travis-fold==1.2.0
|
2016-01-07 21:03:48 +01:00
|
|
|
pytest-repeat==0.2
|
2016-04-06 18:55:54 +02:00
|
|
|
pytest-rerunfailures==2.0.0
|
2016-02-27 02:25:08 +01:00
|
|
|
pytest-xvfb==0.2.0
|
2015-11-02 07:47:48 +01:00
|
|
|
six==1.10.0
|
|
|
|
termcolor==1.1.0
|
2015-10-20 23:32:04 +02:00
|
|
|
vulture==0.8.1
|
2016-03-28 20:14:15 +02:00
|
|
|
Werkzeug==0.11.5
|
2016-02-07 12:31:08 +01:00
|
|
|
wheel==0.29.0
|
2016-03-11 06:53:52 +01:00
|
|
|
cherrypy==5.1.0
|
2016-01-24 20:01:14 +01:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-26 12:15:56 +01:00
|
|
|
{envpython} -m pytest {posargs:tests}
|
2016-01-24 20:01:14 +01:00
|
|
|
|
|
|
|
[testenv:py35-cov]
|
|
|
|
basepython = python3.5
|
|
|
|
setenv = {[testenv]setenv}
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps = {[testenv]deps}
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-26 12:15:56 +01:00
|
|
|
{envpython} -m pytest --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
2016-01-24 20:01:14 +01:00
|
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
|
|
|
|
|
|
|
[testenv:py34-cov]
|
|
|
|
basepython = python3.4
|
|
|
|
setenv = {[testenv]setenv}
|
|
|
|
passenv = {[testenv]passenv}
|
|
|
|
deps = {[testenv]deps}
|
2015-08-31 21:26:30 +02:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-26 12:15:56 +01:00
|
|
|
{envpython} -m pytest --cov --cov-report xml --cov-report=html --cov-report= {posargs:tests}
|
2015-10-05 19:06:00 +02:00
|
|
|
{envpython} scripts/dev/check_coverage.py {posargs}
|
2015-08-08 21:11:38 +02:00
|
|
|
|
|
|
|
[testenv:mkvenv]
|
2015-09-30 06:37:00 +02:00
|
|
|
basepython = python3
|
2015-08-08 21:11:38 +02:00
|
|
|
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
|
|
|
|
envdir = {toxinidir}/.venv
|
|
|
|
usedevelop = true
|
2016-01-19 06:19:54 +01:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2015-03-26 09:18:21 +01:00
|
|
|
|
2015-06-18 11:07:23 +02:00
|
|
|
[testenv:unittests-frozen]
|
2015-10-24 16:18:09 +02:00
|
|
|
# cx_Freeze doesn't support Python 3.5 yet
|
|
|
|
basepython = python3.4
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv = {[testenv]passenv}
|
2015-06-18 11:07:23 +02:00
|
|
|
skip_install = true
|
|
|
|
deps =
|
2015-10-05 19:06:00 +02:00
|
|
|
{[testenv]deps}
|
2015-06-18 11:07:23 +02:00
|
|
|
cx_Freeze==4.3.4
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/freeze_tests.py build_exe -b {envdir}/build
|
2016-01-24 21:10:22 +01:00
|
|
|
{envdir}/build/run-frozen-tests {posargs}
|
2015-06-18 11:07:23 +02:00
|
|
|
|
2015-03-26 08:00:20 +01:00
|
|
|
[testenv:misc]
|
2015-11-30 07:00:20 +01:00
|
|
|
ignore_errors = true
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-08-08 14:46:23 +02:00
|
|
|
# For global .gitignore files
|
|
|
|
passenv = HOME
|
2015-10-05 23:27:19 +02:00
|
|
|
deps =
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/misc_checks.py git
|
|
|
|
{envpython} scripts/dev/misc_checks.py vcs
|
|
|
|
{envpython} scripts/dev/misc_checks.py spelling
|
2015-10-05 23:27:19 +02:00
|
|
|
|
|
|
|
[testenv:vulture]
|
|
|
|
basepython = python3
|
|
|
|
deps = vulture==0.8.1
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-10-04 23:02:03 +02:00
|
|
|
{envpython} scripts/dev/run_vulture.py
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pylint]
|
2015-11-30 07:38:49 +01:00
|
|
|
basepython = python3
|
2015-11-30 07:00:20 +01:00
|
|
|
ignore_errors = true
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-10-05 19:06:00 +02:00
|
|
|
{[testenv]deps}
|
2015-10-05 06:53:56 +02:00
|
|
|
{[testenv:misc]deps}
|
tox: Update astroid/pylint to 1.4.5/1.5.5
astroid
-------
2016-03-21 -- 1.4.5
* decoratornames() does not leak InferenceError anymore.
* wildcard_imported_names() got replaced by _public_names()
Our understanding of wildcard imports through __all__ was
half baked to say at least, since we couldn't account for
modifications of the list, which results in tons of false positives.
Instead, we replaced it with _public_names(), a method which returns
all the names that are publicly available in a module, that is that
don't start with an underscore, even though this means that there
is a possibility for other names to be leaked out even though
they are not present in the __all__ variable.
The method is private in 1.4.X.
pylint
------
2016-03-21 -- 1.5.5
* Let visit_importfrom from Python 3 porting checker be called when everything is disabled
Because the visit method was filtering the patterns it was expecting to be activated,
it didn't run when everything but one pattern was disabled, leading to spurious false
positives
* Don't emit unsubscriptable-value for classes with unknown
base classes.
* Use an OrderedDict for storing the configuration elements
This fixes an issue related to impredictible order of the disable / enable
elements from a config file. In certain cases, the disable was coming before
the enable which resulted in classes of errors to be enabled, even though the intention
was to disable them. The best example for this was in the context of running multiple
processes, each one of it having different enables / disables that affected the output.
* Don't consider bare and broad except handlers as ignoring NameError,
AttributeError and similar exceptions, in the context of checkers for
these issues.
2016-03-21 21:05:01 +01:00
|
|
|
astroid==1.4.5
|
|
|
|
pylint==1.5.5
|
2015-12-29 14:47:42 +01:00
|
|
|
requests==2.9.1
|
2016-02-19 07:09:13 +01:00
|
|
|
./scripts/dev/pylint_checkers
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-09 21:20:52 +01:00
|
|
|
{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}
|
2015-10-26 18:51:41 +01:00
|
|
|
|
2016-03-09 21:20:30 +01:00
|
|
|
[testenv:pylint-master]
|
2015-10-26 18:51:41 +01:00
|
|
|
basepython = python3
|
2015-12-15 11:49:06 +01:00
|
|
|
passenv = {[testenv:pylint]passenv}
|
2015-10-26 18:51:41 +01:00
|
|
|
deps =
|
|
|
|
{[testenv]deps}
|
|
|
|
{[testenv:misc]deps}
|
2016-03-09 21:19:40 +01:00
|
|
|
git+https://github.com/PyCQA/astroid.git
|
|
|
|
git+https://github.com/PyCQA/pylint.git
|
2016-03-09 21:20:03 +01:00
|
|
|
requests==2.9.1
|
2016-02-19 07:09:13 +01:00
|
|
|
./scripts/dev/pylint_checkers
|
2015-10-26 18:51:41 +01:00
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-09 21:20:52 +01:00
|
|
|
{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}
|
2015-03-26 08:00:20 +01:00
|
|
|
|
2016-01-21 18:11:31 +01:00
|
|
|
[testenv:flake8]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2016-02-11 19:26:13 +01:00
|
|
|
flake8==2.5.4
|
2016-01-21 22:01:27 +01:00
|
|
|
flake8-debugger==1.4.0
|
2016-01-21 22:16:24 +01:00
|
|
|
pep8-naming==0.3.3
|
2016-04-08 07:38:30 +02:00
|
|
|
flake8-putty==0.3.2
|
2016-01-27 06:41:00 +01:00
|
|
|
ebb-lint==0.4.4
|
2016-01-22 17:46:33 +01:00
|
|
|
flake8-copyright==0.1
|
2016-01-27 22:30:58 +01:00
|
|
|
mccabe==0.4.0
|
2016-01-21 18:11:31 +01:00
|
|
|
pep8==1.7.0
|
2016-03-02 08:18:37 +01:00
|
|
|
pyflakes==1.1.0
|
2016-01-22 19:00:29 +01:00
|
|
|
flake8-string-format==0.2.1
|
2016-02-28 14:47:24 +01:00
|
|
|
flake8-deprecated==1.0
|
2016-01-22 19:17:55 +01:00
|
|
|
flake8-mock==0.2
|
2016-03-06 16:42:52 +01:00
|
|
|
flake8-pep3101==0.3
|
2016-02-19 18:05:51 +01:00
|
|
|
flake8-docstrings==0.2.5
|
2016-04-08 07:00:29 +02:00
|
|
|
flake8-tuple==0.2.9
|
|
|
|
flake8-tidy-imports==1.0.0
|
2016-04-08 07:49:11 +02:00
|
|
|
flake8-future-import==0.3.2
|
2016-04-08 07:35:53 +02:00
|
|
|
hacking==0.10.2
|
2016-02-19 18:05:51 +01:00
|
|
|
pep257==0.7.0 # still needed by flake8-docstrings but ignored
|
|
|
|
pydocstyle==1.0.0
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2016-01-21 18:11:31 +01:00
|
|
|
{envpython} -m flake8
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pyroma]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2016-03-06 16:45:41 +01:00
|
|
|
pyroma==2.0.2
|
2015-03-26 08:00:20 +01:00
|
|
|
docutils==0.12
|
|
|
|
commands =
|
|
|
|
{envdir}/bin/pyroma .
|
|
|
|
|
|
|
|
[testenv:check-manifest]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2016-01-30 23:31:01 +01:00
|
|
|
check-manifest==0.31
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
|
|
|
{envdir}/bin/check-manifest --ignore 'qutebrowser/git-commit-id,qutebrowser/html/doc,qutebrowser/html/doc/*,*/__pycache__'
|
2015-03-26 09:18:21 +01:00
|
|
|
|
|
|
|
[testenv:docs]
|
2015-08-08 21:11:38 +02:00
|
|
|
basepython = python3
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-03-26 20:37:53 +01:00
|
|
|
whitelist_externals = git
|
2015-08-08 21:11:38 +02:00
|
|
|
passenv =
|
2015-03-26 09:18:21 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-03-26 09:18:21 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2016-03-16 06:22:36 +01:00
|
|
|
{envpython} scripts/dev/src2asciidoc.py {posargs}
|
2016-03-15 22:43:47 +01:00
|
|
|
{envpython} scripts/dev/check_doc_changes.py
|
2015-03-26 09:18:21 +01:00
|
|
|
{envpython} scripts/asciidoc2html.py {posargs}
|
2015-04-03 00:05:20 +02:00
|
|
|
|
2015-06-23 18:36:10 +02:00
|
|
|
[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
|
2015-09-11 19:43:29 +02:00
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
|
|
|
cx_Freeze==4.3.4
|
2015-06-23 18:36:10 +02:00
|
|
|
commands =
|
2016-04-04 19:03:13 +02:00
|
|
|
{envpython} -m pip install -U setuptools
|
2015-06-23 18:36:10 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-28 22:31:30 +02:00
|
|
|
{envpython} scripts/dev/freeze.py {posargs}
|
2015-10-08 06:12:46 +02:00
|
|
|
|
|
|
|
[testenv:eslint]
|
|
|
|
skip_install = True
|
|
|
|
deps =
|
|
|
|
whitelist_externals = eslint
|
|
|
|
commands = eslint qutebrowser
|