[tox] envlist = py38,pep8,bandit setupdir=python/ minversion = 3.28.0 [testenv] setenv = YAMLDIR = {toxinidir}/python/tests/yaml_samples/ passenv = http_proxy,HTTP_PROXY,https_proxy,HTTPS_PROXY,no_proxy,NO_PROXY deps= -r{toxinidir}/python/requirements-frozen.txt -r{toxinidir}/python/test-requirements.txt [testenv:venv] commands = {posargs} [testenv:freeze] recreate = True allowlist_externals= rm sh deps= -r{toxinidir}/python/requirements-direct.txt -c https://raw.githubusercontent.com/apache/airflow/constraints-2.8.2/constraints-3.8.txt commands= rm -f python/requirements-frozen.txt sh -c "pip freeze --all | grep -vE 'drydock_provisioner|pyinotify|pkg-resources==0.0.0' > python/requirements-frozen.txt" [testenv:yapf] allowlist_externals=find commands= yapf -i -r --style=pep8 {toxinidir}/python/setup.py yapf -i -r --style=pep8 {toxinidir}/alembic yapf -i -r --style=pep8 {toxinidir}/python/drydock_provisioner yapf -i -r --style=pep8 {toxinidir}/python/tests find {toxinidir}/python/drydock_provisioner -name '__init__.py' -exec yapf -i --style=pep8 \{\} ; [testenv:py38] usedevelop=True allowlist_externals= py.test setenv= PYTHONWARNING=all YAMLDIR={toxinidir}/python/tests/yaml_samples/ commands= py.test \ --cov=drydock_provisioner \ {toxinidir}/python/tests/unit/{posargs} [testenv:integration] passenv=DOCKER_REGISTRY,IMAGE_NAME,IMAGE_PREFIX,IMAGE_TAG,DISTRO setenv= PYTHONWARNING=all YAMLDIR={toxinidir}/python/tests/yaml_samples/ allowlist_externals= sh pip3 py.test commands= pip3 install ./python/ --use-pep517 sh -c {toxinidir}/python/tests/postgres/start_postgres.sh py.test \ {toxinidir}/python/tests/integration/postgres/{posargs} [testenv:cover] usedevelop=True passenv=DOCKER_REGISTRY,IMAGE_NAME,IMAGE_PREFIX,IMAGE_TAG,DISTRO setenv= YAMLDIR={toxinidir}/python/tests/yaml_samples/ allowlist_externals= sh commands= sh -c {toxinidir}/python/tests/postgres/start_postgres.sh py.test \ --cov=drydock_provisioner \ --cov-report html:cover \ --cov-report xml:cover/coverage.xml \ --cov-report term \ --cov-fail-under 50 \ {toxinidir}/python/tests/unit/ \ {toxinidir}/python/tests/integration/postgres [testenv:genconfig] allowlist_externals = tee sh commands = pip3 install ./python/ --use-pep517 sh -c 'oslo-config-generator --config-file=etc/drydock/drydock-config-generator.conf | tee etc/drydock/drydock.conf.sample doc/source/_static/drydock.conf.sample' [testenv:genpolicy] allowlist_externals = tee sh commands = pip3 install ./python/ --use-pep517 sh -c 'oslopolicy-sample-generator --config-file etc/drydock/drydock-policy-generator.conf | tee etc/drydock/policy.yaml.sample doc/source/_static/policy.yaml.sample' [testenv:pep8] commands = flake8 {posargs} bandit -r drydock_provisioner -n 5 [testenv:bandit] commands = bandit -r drydock_provisioner -n 5 [flake8] ignore=E302,H306,H304,W503,E251,E126 exclude= venv,.venv,.git,.idea,.tox,*.egg-info,*.eggs,bin,dist,./build/,alembic/ max-line-length=119 [testenv:docs] deps= -rdoc/requirements-doc.txt -epython allowlist_externals=rm recreate=true commands = rm -rf doc/build sphinx-build -b html doc/source doc/build/html