[tox] env_list = py{36,37,38,39,310,311} lint type labels = test = py{36,37,38,39,310,311} lint = ruff, autopep8, pylint type = mypy,mypy-strict [testenv] description = "run osbuild unit tests" deps = pytest pytest-xdist jsonschema mako iniparse pyyaml toml pykickstart # required by pykickstart but not pulled in automatically :/ requests tox-backticks setenv = LINTABLES = osbuild/ assemblers/* devices/* inputs/*.* mounts/* runners/* sources/*.* stages/*.* inputs/test/*.py stages/test/*.py sources/test/*.py test/ `find ./tools ! -name "*.sh" -type f` TYPEABLES = osbuild TYPEABLES_STRICT = ./osbuild/main_cli.py passenv = TEST_CATEGORY commands = bash -c 'python -m pytest --pyargs --rootdir=. {env:TEST_CATEGORY} {env:TEST_WORKERS}' allowlist_externals = bash [testenv:ruff] deps = ruff==0.3.0 commands = bash -c 'python -m ruff check {env:LINTABLES}' [testenv:autopep8] deps = autopep8==2.0.2 pycodestyle==2.10.0 commands = bash -c 'python -m autopep8 --diff --max-line-length 120 -a -a -a -j0 -r --exit-code {env:LINTABLES}' [testenv:pylint] deps = pylint==3.0.2 commands = bash -c 'python -m pylint {env:LINTABLES}' [testenv:mypy] deps = mypy==1.2.0 commands = bash -c 'python -m mypy {env:TYPEABLES}' [testenv:mypy-strict] deps = mypy==1.2.0 commands = bash -c 'python -m mypy --follow-imports=skip --disallow-untyped-calls --disallow-untyped-defs --disallow-incomplete-defs {env:TYPEABLES_STRICT}'