sdk-python/tox.ini

55 lines
1.4 KiB
INI

[tox]
envlist = py{38,39,310,311,312},lint,mypy,mypy-samples-{image,json}
skipsdist = True
[testenv]
usedevelop = True
deps =
-r{toxinidir}/requirements/test.txt
-r{toxinidir}/requirements/publish.txt
setenv =
PIP_CONSTRAINT={toxinidir}/requirements/constraints.txt
PYTESTARGS = -v -s --tb=long --cov=cloudevents --cov-report term-missing --cov-fail-under=95
commands = pytest {env:PYTESTARGS} {posargs}
[testenv:reformat]
basepython = python3.11
deps =
black
isort
commands =
black .
isort cloudevents samples
[testenv:lint]
basepython = python3.11
deps =
black
isort
flake8
commands =
black --check .
isort -c cloudevents samples
flake8 cloudevents samples --ignore W503,E731 --extend-ignore E203 --max-line-length 88
[testenv:mypy]
basepython = python3.11
setenv =
PIP_CONSTRAINT={toxinidir}/requirements/mypy-constraints.txt
deps =
-r{toxinidir}/requirements/mypy.txt
# mypy needs test dependencies to check test modules
-r{toxinidir}/requirements/test.txt
commands = mypy cloudevents
[testenv:mypy-samples-{image,json}]
basepython = python3.11
setenv =
PIP_CONSTRAINT={toxinidir}/requirements/mypy-constraints.txt
mypy-samples-image: SAMPLE_DIR={toxinidir}/samples/http-image-cloudevents
mypy-samples-json: SAMPLE_DIR={toxinidir}/samples/http-json-cloudevents
deps =
-r{toxinidir}/requirements/mypy.txt
-r{env:SAMPLE_DIR}/requirements.txt
commands = mypy {env:SAMPLE_DIR}