[tox]
# required because we use pyproject.toml
isolated_build = true
envlist = py310, lint, checkdeps, pytest
# only checks python versions installed locally
skip_missing_interpreters = true

[testenv:lint]
deps = pytest
# lints python code in src and tests
commands = black data_pipeline
           flake8 data_pipeline
           pylint data_pipeline

[testenv:checkdeps]
# checks the dependencies for security vulnerabilities and open source licenses
allowlist_externals = bash
commands = pip install -U wheel
           # known issue: https://github.com/pyupio/safety/issues/364
           # jinja2 false positive for our use: https://data.safetycli.com/v/70612/f17
           safety check --ignore 51457 --ignore 44715 --ignore 70612
           bash scripts/run-liccheck.sh

[testenv:pytest]
# Run tests
deps = pytest
commands = pytest --full-trace
