qutebrowser/tox.ini

245 lines
6.6 KiB
INI
Raw Normal View History

# 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
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
passenv = PYTHON DISPLAY XAUTHORITY HOME USERNAME USER CI TRAVIS XDG_*
2015-03-30 22:09:56 +02:00
deps =
-r{toxinidir}/requirements.txt
2015-11-02 07:47:48 +01:00
beautifulsoup4==4.4.1
tox/requirements: Update coverage to 4.1 Version 4.1 --- 2016-05-21 - The internal attribute Reporter.file_reporters was removed in 4.1b3. It should have come has no surprise that there were third-party tools out there using that attribute. It has been restored, but with a deprecation warning. Version 4.1b3 --- 2016-05-10 - When running your program, execution can jump from an except X: line to some other line when an exception other than X happens. This jump is no longer considered a branch when measuring branch coverage. - When measuring branch coverage, yield statements that were never resumed were incorrectly marked as missing. This is now fixed. - During branch coverage of single-line callables like lambdas and generator expressions, coverage.py can now distinguish between them never being called, or being called but not completed. - The HTML report now has a map of the file along the rightmost edge of the page, giving an overview of where the missed lines are. Thanks, Dmitry Shishov. - The HTML report now uses different monospaced fonts, favoring Consolas over Courier. Along the way not properly handling one-space indents was fixed. The index page also has slightly different styling, to try to make the clickable detail pages more apparent. - Missing branches reported with coverage report -m will now say ->exit for missed branches to the exit of a function, rather than a negative number. - coverage --help and coverage --version now mention which tracer is installed, to help diagnose problems. The docs mention which features need the C extension. - Officially support PyPy 5.1, which required no changes, just updates to the docs. - The Coverage.report function had two parameters with non-None defaults, which have been changed. show_missing used to default to True, but now defaults to None. If you had been calling Coverage.report without specifying show_missing, you'll need to explicitly set it to True to keep the same behavior. skip_covered used to default to False. It is now None, which doesn't change the behavior. - It's never been possible to pass a namespace module to one of the analysis functions, but now at least we raise a more specific error message, rather than getting confused. - The coverage.process_startup function now returns the Coverage instance it creates. - Make a small tweak to how we compare threads, to avoid buggy custom comparison code in thread classes. Version 4.1b2 --- 2016-01-23 - Problems with the new branch measurement in 4.1 beta 1 were fixed: - Class docstrings were considered executable. Now they no longer are. - yield from and await were considered returns from functions, since they could tranfer control to the caller. This produced unhelpful "missing branch" reports in a number of circumstances. Now they no longer are considered returns. - In unusual situations, a missing branch to a negative number was reported. - The XML report now produces correct package names for modules found in directories specified with source=. - coverage report won't produce trailing whitespace. Version 4.1b1 --- 2016-01-10 - Branch analysis has been rewritten: it used to be based on bytecode, but now uses AST analysis. This has changed a number of things: - More code paths are now considered runnable, especially in try/except structures. This may mean that coverage.py will identify more code paths as uncovered. This could either raise or lower your overall coverage number. - Python 3.5's async and await keywords are properly supported - Some long-standing branch coverage bugs were fixed: - functions with only a docstring for a body would incorrectly report a missing branch on the def line. - code in an except block could be incorrectly marked as a missing branch. - context managers (with statements) in a loop or try block could confuse the branch measurement, reporting incorrect partial branches. - In Python 3.5, an actual partial branch could be marked as complete. - Pragmas to disable coverage measurement can now be used on decorator lines, and they will apply to the entire function or class being decorated. - Multiprocessing support is now available on Windows. - Files with two encoding declarations are properly supported. - Non-ascii characters in regexes in the configuration file worked in 3.7, but stopped working in 4.0. Now they work again. - Form-feed characters would prevent accurate determination of the beginning of statements in the rest of the file. This is now fixed.
2016-05-22 14:35:26 +02:00
coverage==4.1
decorator==4.0.9
2015-11-02 07:47:48 +01:00
Flask==0.10.1
glob2==0.4.1
httpbin==0.4.1
hypothesis==3.2.0
2015-11-02 07:47:48 +01:00
itsdangerous==0.24
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
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
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
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
2015-03-26 09:18:21 +01:00
# 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
2015-10-05 23:27:19 +02:00
deps =
commands =
{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}
{envpython} scripts/dev/run_vulture.py
[testenv:pylint]
basepython = python3
ignore_errors = true
passenv =
deps =
{[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
requests==2.10.0
./scripts/dev/pylint_checkers
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 {toxinidir} --output-format=colorized --reports=no {posargs}
2015-10-26 18:51:41 +01:00
[testenv:pylint-master]
2015-10-26 18:51:41 +01:00
basepython = python3
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-04-30 17:51:04 +02:00
requests==2.10.0
./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}
2016-01-21 18:11:31 +01:00
[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
2016-01-22 19:17:55 +01:00
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
2016-04-20 20:16:50 +02:00
hacking==0.11.0
intervaltree==2.1.0
mccabe==0.4.0
packaging==16.7
2016-05-24 15:43:09 +02:00
pbr==1.10.0
Move comment in tox.ini On Travis CI, the flake8 env suddenly started to fail (pip upgrade?): Invalid requirement: 'pep257==0.7.0 # still needed by flake8-docstrings but ignored' Traceback (most recent call last): File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/packaging/requirements.py", line 92, in __init__ req = REQUIREMENT.parseString(requirement_string) File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/pyparsing.py", line 1172, in parseString raise exc File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/pyparsing.py", line 1162, in parseString loc, tokens = self._parse( instring, 0 ) File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/pyparsing.py", line 1028, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/pyparsing.py", line 2462, in parseImpl loc, exprtokens = e._parse( instring, loc, doActions ) File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/pyparsing.py", line 1032, in _parseNoCache loc,tokens = self.parseImpl( instring, preloc, doActions ) File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/pyparsing.py", line 2265, in parseImpl raise ParseException(instring, loc, self.errmsg, self) pip._vendor.pyparsing.ParseException: Expected stringEnd (at char 15), (line:1, col:16) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/req/req_install.py", line 78, in __init__ req = Requirement(req) File "/home/travis/build/The-Compiler/qutebrowser/.tox/flake8/lib/python3.4/site-packages/pip/_vendor/packaging/requirements.py", line 96, in __init__ requirement_string[e.loc:e.loc + 8])) pip._vendor.packaging.requirements.InvalidRequirement: Invalid requirement, parse error at "'# still '" I can't reproduce this locally, but I hope this'll help.
2016-05-11 06:08:48 +02:00
# still needed by flake8-docstrings but ignored
pep257==0.7.0
pep8==1.7.0
pep8-naming==0.3.3
pydocstyle==1.0.0
2016-05-12 21:11:14 +02:00
pyflakes==1.2.3
pyparsing==2.1.4
six==1.10.0
sortedcontainers==1.4.4
venusian==1.0
commands =
2016-01-21 18:11:31 +01:00
{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__'
2015-03-26 09:18:21 +01:00
[testenv:docs]
basepython = python3
skip_install = true
whitelist_externals = git
passenv = TRAVIS_PULL_REQUEST
2015-03-26 09:18:21 +01:00
deps =
-r{toxinidir}/requirements.txt
2015-03-26 09:18:21 +01:00
commands =
{envpython} scripts/link_pyqt.py --tox {envdir}
{envpython} scripts/dev/src2asciidoc.py {posargs}
{envpython} scripts/dev/check_doc_changes.py {posargs}
2015-03-26 09:18:21 +01:00
{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}
2016-03-26 19:54:07 +01:00
[testenv:pyinstaller]
basepython = python3
-skip_install = true
deps =
-r{toxinidir}/requirements.txt
PyInstaller==3.2
2016-03-26 19:54:07 +01:00
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