[tox] minversion = 1.6 skipsdist = True skip_missing_interpreters = True envlist = py310,py39,py38,py37,flake8,black,twine-check,mypy,isort,cz,pylint [testenv] passenv = GITLAB_IMAGE GITLAB_TAG PY_COLORS NO_COLOR FORCE_COLOR DOCKER_HOST PWD setenv = VIRTUAL_ENV={envdir} whitelist_externals = true usedevelop = True install_command = pip install {opts} {packages} isolated_build = True deps = -r{toxinidir}/requirements.txt -r{toxinidir}/requirements-test.txt commands = pytest tests/unit {posargs} [testenv:black] basepython = python3 envdir={toxworkdir}/lint deps = -r{toxinidir}/requirements-lint.txt commands = black {posargs} . [testenv:isort] basepython = python3 envdir={toxworkdir}/lint deps = -r{toxinidir}/requirements-lint.txt commands = isort {posargs} {toxinidir} [testenv:mypy] basepython = python3 envdir={toxworkdir}/lint deps = -r{toxinidir}/requirements-lint.txt commands = mypy {posargs} [testenv:flake8] basepython = python3 envdir={toxworkdir}/lint deps = -r{toxinidir}/requirements-lint.txt commands = flake8 {posargs} . [testenv:pylint] basepython = python3 envdir={toxworkdir}/lint deps = -r{toxinidir}/requirements-lint.txt commands = pylint {posargs} gitlab/ [testenv:cz] basepython = python3 envdir={toxworkdir}/lint deps = -r{toxinidir}/requirements-lint.txt commands = cz check --rev-range 65ecadc..HEAD # cz is fast, check from first valid commit [testenv:twine-check] basepython = python3 deps = -r{toxinidir}/requirements.txt build twine commands = python -m build twine check dist/* [testenv:venv] commands = {posargs} [flake8] exclude = .git,.venv,.tox,dist,doc,*egg,build, max-line-length = 88 # We ignore the following because we use black to handle code-formatting # E203: Whitespace before ':' # E501: Line too long # W503: Line break occurred before a binary operator ignore = E203,E501,W503 per-file-ignores = gitlab/v4/objects/__init__.py:F401,F403 [testenv:docs] deps = -r{toxinidir}/requirements-docs.txt commands = sphinx-build -n -W --keep-going -b html docs build/sphinx/html [testenv:cover] commands = pytest --cov --cov-report term --cov-report html \ --cov-report xml tests/unit {posargs} [coverage:run] omit = *tests* source = gitlab [coverage:report] exclude_lines = pragma: no cover if TYPE_CHECKING: if debug: return NotImplemented [testenv:cli_func_v4] deps = -r{toxinidir}/requirements-docker.txt commands = pytest --script-launch-mode=subprocess --cov --cov-report xml tests/functional/cli {posargs} [testenv:api_func_v4] deps = -r{toxinidir}/requirements-docker.txt commands = pytest --cov --cov-report xml tests/functional/api {posargs} [testenv:meta] deps = -r{toxinidir}/requirements-test.txt commands = pytest tests/meta {posargs}