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]
|
2015-06-16 07:37:08 +02:00
|
|
|
envlist = smoke,unittests,misc,pep257,pyflakes,pep8,mccabe,pylint,pyroma,check-manifest
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv]
|
2015-06-10 18:33:15 +02:00
|
|
|
passenv = PYTHON
|
2015-03-26 08:00:20 +01:00
|
|
|
basepython = python3
|
|
|
|
|
|
|
|
[testenv:mkvenv]
|
2015-03-26 12:09:36 +01:00
|
|
|
commands = {envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-03-26 08:00:20 +01:00
|
|
|
envdir = {toxinidir}/.venv
|
|
|
|
usedevelop = true
|
|
|
|
|
|
|
|
[testenv:unittests]
|
2015-05-16 14:22:56 +02:00
|
|
|
# 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
|
2015-06-10 18:33:15 +02:00
|
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME
|
2015-03-30 22:09:56 +02:00
|
|
|
deps =
|
2015-05-27 07:45:09 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-06-05 17:29:00 +02:00
|
|
|
py==1.4.28
|
2015-05-19 12:38:13 +02:00
|
|
|
pytest==2.7.1
|
2015-04-03 20:10:41 +02:00
|
|
|
pytest-capturelog==0.7
|
2015-06-07 01:13:19 +02:00
|
|
|
pytest-qt==1.4.0
|
2015-06-05 17:27:59 +02:00
|
|
|
pytest-mock==0.6.0
|
2015-05-26 19:25:45 +02:00
|
|
|
pytest-html==1.3.1
|
2015-03-26 09:18:21 +01:00
|
|
|
commands =
|
2015-03-26 13:17:07 +01:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-05-27 07:49:27 +02:00
|
|
|
{envpython} -m py.test --strict -rfEsw {posargs}
|
2015-03-26 09:18:21 +01:00
|
|
|
|
2015-06-18 11:07:23 +02:00
|
|
|
[testenv:unittests-frozen]
|
|
|
|
setenv = {[testenv:unittests]setenv}
|
|
|
|
passenv = {[testenv:unittests]passenv}
|
|
|
|
skip_install = true
|
|
|
|
deps =
|
|
|
|
{[testenv:unittests]deps}
|
|
|
|
cx_Freeze==4.3.4
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
|
|
{envpython} scripts/freeze_tests.py build_exe -b {envdir}/build
|
|
|
|
{envdir}/build/run-frozen-tests --strict -rfEsw {posargs}
|
|
|
|
|
2015-03-26 09:18:21 +01:00
|
|
|
[testenv:coverage]
|
2015-06-10 18:33:15 +02:00
|
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-03-30 22:09:56 +02:00
|
|
|
{[testenv:unittests]deps}
|
2015-03-26 08:00:20 +01:00
|
|
|
coverage==3.7.1
|
2015-03-30 23:29:54 +02:00
|
|
|
pytest-cov==1.8.1
|
|
|
|
cov-core==1.15.0
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-05-27 07:49:27 +02:00
|
|
|
{envpython} -m py.test --strict -rfEswx -v --cov qutebrowser --cov-report term --cov-report html {posargs}
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:misc]
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/misc_checks.py git
|
2015-06-05 18:18:29 +02:00
|
|
|
{envpython} scripts/misc_checks.py vcs
|
|
|
|
{envpython} scripts/misc_checks.py spelling
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pylint]
|
|
|
|
skip_install = true
|
2015-03-26 13:17:07 +01:00
|
|
|
setenv = PYTHONPATH={toxinidir}/scripts
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-03-26 08:00:20 +01:00
|
|
|
astroid==1.3.6
|
|
|
|
beautifulsoup4==4.3.2
|
|
|
|
pylint==1.4.3
|
|
|
|
logilab-common==0.63.2
|
|
|
|
six==1.9.0
|
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-10 18:33:37 +02:00
|
|
|
{envpython} -m pylint scripts qutebrowser --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
|
2015-06-04 15:25:36 +02:00
|
|
|
{envpython} scripts/run_pylint_on_tests.py --rcfile=.pylintrc --output-format=colorized --reports=no --expected-line-ending-format=LF
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pep257]
|
|
|
|
skip_install = true
|
|
|
|
deps = pep257==0.5.0
|
2015-06-10 18:33:15 +02:00
|
|
|
passenv = PYTHON LANG
|
2015-03-26 08:00:20 +01:00
|
|
|
# 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)
|
2015-04-05 20:30:31 +02:00
|
|
|
commands = {envpython} -m pep257 scripts tests qutebrowser --ignore=D102,D103,D209,D402 '--match=(?!resources|test_content_disposition).*\.py'
|
2015-03-26 08:00:20 +01:00
|
|
|
|
2015-06-02 20:51:06 +02:00
|
|
|
[testenv:pyflakes]
|
|
|
|
# https://github.com/fschulze/pytest-flakes/issues/6
|
|
|
|
setenv = LANG=en_US.UTF-8
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-06-05 17:29:00 +02:00
|
|
|
py==1.4.28
|
2015-06-02 20:51:06 +02:00
|
|
|
pytest==2.7.1
|
2015-06-17 17:48:25 +02:00
|
|
|
pyflakes==0.9.2
|
2015-06-05 17:26:49 +02:00
|
|
|
pytest-flakes==1.0.0
|
2015-06-02 20:51:06 +02:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-02 20:51:06 +02:00
|
|
|
{envpython} -m py.test -q --flakes -m flakes
|
|
|
|
|
|
|
|
[testenv:pep8]
|
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2015-06-05 17:29:00 +02:00
|
|
|
py==1.4.28
|
2015-06-02 20:51:06 +02:00
|
|
|
pytest==2.7.1
|
|
|
|
pep8==1.6.2
|
|
|
|
pytest-pep8==1.0.6
|
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-02 20:51:06 +02:00
|
|
|
{envpython} -m py.test -q --pep8 -m pep8
|
|
|
|
|
|
|
|
[testenv:mccabe]
|
|
|
|
deps =
|
|
|
|
-r{toxinidir}/requirements.txt
|
2015-06-05 17:29:00 +02:00
|
|
|
py==1.4.28
|
2015-06-02 20:51:06 +02:00
|
|
|
pytest==2.7.1
|
2015-06-15 06:21:14 +02:00
|
|
|
mccabe==0.3.1
|
2015-06-02 20:51:06 +02:00
|
|
|
pytest-mccabe==0.1
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-06-02 20:51:06 +02:00
|
|
|
{envpython} -m py.test -q --mccabe -m mccabe
|
2015-03-26 08:00:20 +01:00
|
|
|
|
|
|
|
[testenv:pyroma]
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-06-14 13:45:09 +02:00
|
|
|
pyroma==1.8.2
|
2015-03-26 08:00:20 +01:00
|
|
|
docutils==0.12
|
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-03-26 08:00:20 +01:00
|
|
|
{envdir}/bin/pyroma .
|
|
|
|
|
|
|
|
[testenv:check-manifest]
|
2015-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-03-26 08:00:20 +01:00
|
|
|
deps =
|
2015-05-27 08:51:24 +02:00
|
|
|
check-manifest==0.25
|
2015-03-26 08:00:20 +01:00
|
|
|
commands =
|
2015-06-09 18:28:57 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
2015-03-26 08:00:20 +01:00
|
|
|
{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-03-26 20:19:55 +01:00
|
|
|
skip_install = true
|
2015-03-26 20:37:53 +01:00
|
|
|
whitelist_externals = git
|
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}
|
2015-03-26 09:18:21 +01:00
|
|
|
{envpython} scripts/src2asciidoc.py
|
2015-03-26 20:37:53 +01:00
|
|
|
git --no-pager diff --exit-code --stat
|
2015-03-26 09:18:21 +01:00
|
|
|
{envpython} scripts/asciidoc2html.py {posargs}
|
2015-04-03 00:05:20 +02:00
|
|
|
|
2015-03-27 07:59:13 +01:00
|
|
|
[testenv:smoke]
|
2015-05-17 01:19:23 +02:00
|
|
|
# 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
|
2015-06-10 18:33:15 +02:00
|
|
|
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER
|
2015-03-27 07:59:13 +01:00
|
|
|
deps =
|
2015-05-17 01:18:19 +02:00
|
|
|
-r{toxinidir}/requirements.txt
|
2015-03-27 07:59:13 +01:00
|
|
|
commands =
|
2015-05-17 01:07:36 +02:00
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
|
|
{envpython} -m qutebrowser --no-err-windows --nowindow --temp-basedir about:blank ":later 500 quit"
|
2015-05-17 00:28:56 +02:00
|
|
|
|
2015-06-18 20:44:22 +02:00
|
|
|
[testenv:smoke-frozen]
|
|
|
|
setenv = {[testenv:smoke]setenv}
|
|
|
|
passenv = {[testenv:smoke]passenv}
|
|
|
|
skip_install = true
|
|
|
|
deps =
|
|
|
|
{[testenv:smoke]deps}
|
|
|
|
cx_Freeze==4.3.4
|
|
|
|
commands =
|
|
|
|
{envpython} scripts/link_pyqt.py --tox {envdir}
|
|
|
|
{envpython} scripts/freeze.py build_exe -b {envdir}/build
|
|
|
|
{envdir}/build/qutebrowser --no-err-windows --nowindow --temp-basedir about:blank ":later 500 quit"
|
|
|
|
|
2015-04-03 00:05:20 +02:00
|
|
|
[pytest]
|
|
|
|
norecursedirs = .tox .venv
|
2015-04-20 18:02:04 +02:00
|
|
|
markers =
|
|
|
|
gui: Tests using the GUI (e.g. spawning widgets)
|
2015-06-02 20:51:06 +02:00
|
|
|
flakes-ignore =
|
|
|
|
UnusedImport
|
|
|
|
UnusedVariable
|
|
|
|
resources.py ALL
|
|
|
|
pep8ignore =
|
|
|
|
E265 # Block comment should start with '#'
|
|
|
|
E501 # Line too long
|
|
|
|
E402 # module level import not at top of file
|
|
|
|
E266 # too many leading '#' for block comment
|
|
|
|
W503 # line break before binary operator
|
|
|
|
resources.py ALL
|
|
|
|
mccabe-complexity = 12
|
2015-06-07 02:34:19 +02:00
|
|
|
qt_log_level_fail = WARNING
|
2015-06-10 18:30:42 +02:00
|
|
|
qt_log_ignore =
|
|
|
|
^SpellCheck: .*
|
|
|
|
^SetProcessDpiAwareness failed: .*
|
2015-06-12 17:04:12 +02:00
|
|
|
^QWindowsWindow::setGeometryDp: Unable to set geometry .*
|