[tox]
envlist = py{310,311,312}, lint, type, coverage
isolated_build = True
[testenv]
deps =
.[test]
commands =
pytest {posargs}
[testenv:lint]
deps =
.[dev]
commands =
ruff check src tests
ruff format src tests --check
[testenv:type]
deps =
.[dev]
commands =
mypy src tests --strict
[testenv:coverage]
deps =
.[test]
commands =
pytest --cov=lifecycle_mcp --cov-branch --cov-report=term-missing --cov-fail-under=90
[testenv:mutation]
deps =
.[test]
mutmut
commands =
mutmut run --paths-to-mutate=src/lifecycle_mcp --runner="python -m pytest -x -q"
[testenv:security]
deps =
bandit[toml]
safety
commands =
bandit -r src -f json -o bandit-report.json
safety check --json