Similar to the `stage_module` fixture for stage tests this adds a fixture to test sources modules of osbuild. The code from `stage_module` and `sources_module` is similar and could be combined but pytest makes it hard to do this without having a shared root dir. Given that it's just four lines it seems easier to just life with the tiny bit of code duplication.
82 lines
1.6 KiB
INI
82 lines
1.6 KiB
INI
[tox]
|
|
env_list =
|
|
py{36,37,38,39,310,311}
|
|
lint
|
|
type
|
|
|
|
labels =
|
|
test = py{36,37,38,39,310,311}
|
|
lint = ruff, isort, 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/*.* 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.0.263
|
|
|
|
commands =
|
|
bash -c 'python -m ruff {env:LINTABLES}'
|
|
|
|
[testenv:isort]
|
|
deps =
|
|
isort==5.12.0
|
|
|
|
commands =
|
|
bash -c 'python -m isort --check --diff {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}'
|