qutebrowser/tox.ini
Florian Bruhin 4066696956 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

246 lines
6.6 KiB
INI

# 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.1.3
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-html==1.8.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.9.1
# 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