vimiv-qt/tox.ini

94 lines
2.8 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
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
black --check --diff --exclude ".*syntax_error.*" 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
allowlist_externals = {[testenv:docs]allowlist_externals}
# Settings for check-manifest
[check-manifest]
ignore =
.*
pytest.ini
tox.ini
mypy.ini
scripts
scripts/*
tests
tests/*