103 lines
3.0 KiB
INI
103 lines
3.0 KiB
INI
[tox]
|
|
envlist = pyqt,pyqt-piexif,pyqt-pyexiv2,lint,packaging,mypy
|
|
|
|
# Standard test suite using pytest
|
|
[testenv]
|
|
setenv =
|
|
cov: PYTEST_ADDOPTS= --cov {envsitepackagesdir}/vimiv --cov-report xml:{toxinidir}/coverage/coverage.xml --cov-report html:{toxinidir}/coverage/html
|
|
passenv = PYTHONPATH, CI, USER, HOME, XDG_*, DISPLAY
|
|
basepython = {env:PYTHON:python3}
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements_tests.txt
|
|
pyqt: -r{toxinidir}/misc/requirements/requirements.txt
|
|
pyqt511: PyQt5==5.11.3
|
|
pyqt512: PyQt5==5.12.3
|
|
pyqt513: PyQt5==5.13.2
|
|
pyqt514: PyQt5==5.14.2
|
|
pyqt515: -r{toxinidir}/misc/requirements/requirements.txt
|
|
cov: -r{toxinidir}/misc/requirements/requirements_cov.txt
|
|
piexif: -r{toxinidir}/misc/requirements/requirements_piexif.txt
|
|
pyexiv2: -r{toxinidir}/misc/requirements/requirements_pyexiv2.txt
|
|
|
|
commands_pre = {envpython} scripts/maybe_build_cextension.py
|
|
commands = pytest {posargs}
|
|
|
|
# Linters and checkers for the source code
|
|
[testenv:lint]
|
|
ignore_errors = true
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements_piexif.txt
|
|
-r{toxinidir}/misc/requirements/requirements_lint.txt
|
|
commands =
|
|
pylint vimiv scripts/pylint_checkers
|
|
{toxinidir}/scripts/lint_tests.py tests
|
|
pycodestyle vimiv tests scripts/pylint_checkers
|
|
pydocstyle vimiv scripts/pylint_checkers
|
|
allowlist_externals =
|
|
{toxinidir}/scripts/lint_tests.py
|
|
|
|
# Check the packaging for best-practices and completeness
|
|
[testenv:packaging]
|
|
ignore_errors = true
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements_packaging.txt
|
|
commands =
|
|
pyroma .
|
|
check-manifest
|
|
|
|
# Check for errors with type annotations
|
|
[testenv:mypy]
|
|
passenv = PYTHONPATH, CI, TERM
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements_piexif.txt
|
|
-r{toxinidir}/misc/requirements/requirements_mypy.txt
|
|
commands = mypy vimiv
|
|
|
|
# Create a virtual environment to run the development version
|
|
[testenv:mkvenv]
|
|
envdir = {toxinidir}/.venv
|
|
usedevelop = true
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements.txt
|
|
commands = {envpython} -c ""
|
|
|
|
# Create a virtual environment to build the documentation
|
|
[testenv:docs]
|
|
deps =
|
|
-r{toxinidir}/misc/requirements/requirements.txt
|
|
-r{toxinidir}/misc/requirements/requirements_piexif.txt
|
|
-r{toxinidir}/misc/requirements/requirements_docs.txt
|
|
commands =
|
|
{toxinidir}/scripts/src2rst.py
|
|
sphinx-build -b html docs {posargs}
|
|
allowlist_externals =
|
|
{toxinidir}/scripts/src2rst.py
|
|
|
|
[testenv:man]
|
|
deps = {[testenv:docs]deps}
|
|
commands =
|
|
{toxinidir}/scripts/src2rst.py
|
|
sphinx-build -b man docs misc
|
|
|
|
# Settings for pycodestyle
|
|
[pycodestyle]
|
|
max-line-length = 88
|
|
# E203: whitespace before ':' wrongly raised for slicing
|
|
# E501: line too long checked by pylint
|
|
# W503: line break before binary operator does not conform to pep8
|
|
ignore = E203,E501,W503
|
|
|
|
# Settings for check-manifest
|
|
[check-manifest]
|
|
ignore =
|
|
.*
|
|
pytest.ini
|
|
tox.ini
|
|
mypy.ini
|
|
scripts
|
|
scripts/*
|
|
tests
|
|
tests/*
|