[tox] envlist = bandit, flake8, black, py27, py3 [testenv:flake8] deps = flake8 whitelist_externals = sh commands = sh -c "flake8 pungi pungi_utils setup.py tests/*py" [testenv:bandit] basepython = python3 skip_install = true deps = bandit commands = bandit -r -ll pungi pungi_utils ignore_outcome = True [testenv:black] basepython = python3 whitelist_externals = sh deps = {[testenv:flake8]deps} black commands = {[testenv:flake8]commands} black --check --diff pungi pungi_utils setup.py tests --exclude tests/_composes [testenv:py27] sitepackages = true deps = -rrequirements.txt -rtest-requirements.txt whitelist_externals = sh make coverage commands = sh -c 'find . -name "*.pyc" -exec rm -f \{\} +' pip install --force-reinstall pytest mock make test-coverage coverage xml [testenv:py3] sitepackages = true deps = -rrequirements.txt -rtest-requirements.txt whitelist_externals = sh commands = sh -c 'find . -name "__pycache__" -exec rm -rf \{\} +' pip install --force-reinstall pytest mock pytest {posargs} [flake8] exclude = doc/*,*.pyc,*.py~,*.in,*.spec,*.sh,*.rst filename = *.py max-line-length = 88 # E402: module level import not at top of file # H301: one import per line # H306: imports not in alphabetical order # E226: missing whitespace around arithmetic operator # W503: line break occured before a binary operator # E203: whitespace before ':' ignore = E402,H301,H306,E226,W503,E203 [pytest] addopts = --ignore=tests/_composes