Why
IndexPilot rejects overlapping input and output paths before writing a report. review has a regression test for this safety guard, but the matching guards in doctor, audit, and compare do not.
Scope
Add focused or parameterized tests for the existing guards. Do not change their runtime behavior unless a test exposes a real bug.
Done when
doctor rejects identical JSON and Markdown output paths;
audit rejects identical JSON and Markdown output paths;
compare rejects any collision among its two inputs and two outputs;
- each case returns exit code
2 and checks the current error text;
- the tests prove no output is written and existing input files remain unchanged;
python -m pytest tests/test_cli.py -q passes.
Useful files
indexpilot/cli.py
tests/test_cli.py
Comment here before starting so two contributors do not duplicate the work.
Why
IndexPilot rejects overlapping input and output paths before writing a report.
reviewhas a regression test for this safety guard, but the matching guards indoctor,audit, andcomparedo not.Scope
Add focused or parameterized tests for the existing guards. Do not change their runtime behavior unless a test exposes a real bug.
Done when
doctorrejects identical JSON and Markdown output paths;auditrejects identical JSON and Markdown output paths;comparerejects any collision among its two inputs and two outputs;2and checks the current error text;python -m pytest tests/test_cli.py -qpasses.Useful files
indexpilot/cli.pytests/test_cli.pyComment here before starting so two contributors do not duplicate the work.