mutmut Adapter
Quell's mutmut adapter reads from .mutmut-cache — the SQLite database that mutmut populates after a run. It automatically detects whether you're on mutmut 2.x or 3.x.
Setup
pip install mutmut quelltest
Run mutmut first:
mutmut run
Then use Quell:
quell scan --tool mutmut # default, --tool flag optional
Version detection
Quell inspects the .mutmut-cache schema at runtime:
- mutmut 3.x: has a
MutantStatustable → queried directly via SQL - mutmut 2.x: has a
mutanttable → usesmutmut results+mutmut show <id>CLI
No configuration needed — detection is automatic.
Configuring mutmut
Create a setup.cfg or pyproject.toml section for mutmut:
# pyproject.toml
[tool.mutmut]
paths_to_mutate = "src/"
tests_dir = "tests/"
runner = "python -m pytest"
Or setup.cfg:
[mutmut]
paths_to_mutate=src/
runner=python -m pytest
Running mutmut efficiently
# Run only on a specific file
mutmut run src/payments.py
# Run only specific operators (mutmut 3.x)
mutmut run --operators BoundaryMutation
# Run with parallelism
mutmut run --j 4
Cache location
The .mutmut-cache file is created in your project root. Quell expects it there by default. Override with --root:
quell scan --root /path/to/project
Troubleshooting
.mutmut-cache not found:
# Make sure mutmut has been run
mutmut run
# Check the file exists
ls -la .mutmut-cache
All mutants show as UNKNOWN:
This means Quell couldn't parse the diff from mutmut show. This can happen with very complex mutations or custom mutation operators. Configure an LLM provider to handle these.
Windows: mutmut 3.x requires Linux/macOS. Use WSL on Windows.