[tox]
env_list = py310,py311,py312,py313,py314
skip_missing_interpreters = true
package = editable
min_version = 4.0

[testenv]
runner = uv-venv-runner
deps =
    -r test_requirements.txt
allowlist_externals = 
    find
    sh
    ruff
passenv = COVERAGE_FILE
commands =
    pytest {posargs}
    ruff check
    ruff format --check
    codespell

[testenv:test]
commands =
    pytest {posargs}

[testenv:end-to-end]
package = editable
system_site_packages = true
deps =
    -r test_requirements.txt
    .
pass_env = COVERAGE_FILE
commands =
    pytest {posargs} --no-cov tests/end-to-end

[testenv:lint]
deps = []
skip_install = true
commands =
    ruff check --diff {posargs}

[testenv:lint-fix]
deps = []
skip_install = true
commands =
    ruff check --fix {posargs}

[testenv:format]
deps = []
skip_install = true
commands =
    ruff format {posargs}

[testenv:spell]
deps = {[testenv]deps}
commands =
    codespell --write-changes
