[tox]
envlist = py311

[pytest]
markers = workflow

[testenv]
passenv = DATABASE_URI_TEST,SKIP_ALL_TESTS,ENVIRONMENT_IGNORE_MUTATION_DISABLED
setenv =
    OAUTH2_ACTIVE = False
deps =
    coverage
    -r requirements.txt

commands =
    ruff check --respect-gitignore --preview .
    ruff format --respect-gitignore --preview --check .
    mypy .
    coverage erase
    coverage run --source gso --omit="gso/migrations/*" -m pytest {posargs}
    coverage xml
    coverage html
    sh -c "if [ $SKIP_ALL_TESTS -eq 1 ]; then echo 'Skipping coverage report'; else coverage report --fail-under 80; fi"

allowlist_externals =
    sh